文件名称:Qt 编程 DLL和DLL的3中常见调用方法
文件大小:2.01MB
文件格式:ZIP
更新时间:2015-08-30 08:26:10
Qt DLL
DLL_CALL1: 调用dll里的全局函数,使用QLibrary,它封装了loadlibrary和getprocaddress,等 freelibrary 要求: 需要知道dll里函数的原型,来写函数指针。 dll放到一个指定的目录下不一定非exe旁边。 DLL_CALL2: 调用dll里类的成员函数,使用com的方法(也是QLibrary),gettestdll返回接口的指针。 要求: 包含dll的头文件这样(1、获得对象的函数指针2、接口的原型) dll放到一个指定的目录下不一定非exe旁边。 DLL_CALL2_3: 调用插件形式dll的方法,使用QPluginLoader。 要求:包含头文件,(插件的接口的原型需要知道,得到接口的指针调用函数)。 dll放到一个指定的目录下不一定非exe旁边。 DLL_CALL3: 静态连接的形式,在Qt的项目上右键-》添加库(内部库可能就是本工程内的,外部的就是外面 的??)-》把lib选上ok。 要求: dll头文件,有了头文件后,可以直接使用dll中的类和dll中的全局函数。但是执行时dll得放到 exe旁边。 dll必须放到系统目录或exe旁边。
【文件预览】:
DLL_CALL2
----Makefile(7KB)
----vc90.pdb(412KB)
----release()
----Makefile.Debug(5KB)
----debug()
--------TEST_DLL.dll(28KB)
--------DLL_CALL2.exe(24KB)
--------DLL_CALL2.intermediate.manifest(878B)
--------DLL_CALL2.ilk(279KB)
--------DLL_CALL2.pdb(579KB)
--------main.obj(39KB)
----DLL_CALL2.pro(311B)
----main.cpp(730B)
----Makefile.Release(5KB)
PLUGIN_DLL
----Makefile(7KB)
----PluginInterface.h(352B)
----vc90.pdb(684KB)
----release()
----Makefile.Debug(6KB)
----debug()
--------moc_PluginInstance.obj(33KB)
--------PLUGIN_DLL.ilk(295KB)
--------PLUGIN_DLL.lib(2KB)
--------PluginInstance.obj(73KB)
--------PLUGIN_DLL.pdb(859KB)
--------PLUGIN_DLL.exp(810B)
--------moc_PluginInstance.cpp(3KB)
--------PLUGIN_DLL.intermediate.manifest(621B)
--------PLUGIN_DLL.dll(36KB)
----PluginInstance.cpp(317B)
----PLUGIN_DLL.pro(723B)
----Makefile.Release(6KB)
----PluginInstance.h(382B)
DLL_CALL1
----Makefile(7KB)
----vc90.pdb(412KB)
----DLL_CALL1.pro(311B)
----release()
----Makefile.Debug(5KB)
----debug()
--------DLL_CALL1.ilk(284KB)
--------TEST_DLL.dll(28KB)
--------DLL_CALL1.exe(25KB)
--------main.obj(39KB)
--------DLL_CALL1.intermediate.manifest(878B)
--------DLL_CALL1.pdb(579KB)
----main.cpp(571B)
----Makefile.Release(5KB)
----DLL_CALL1.pro.user(18KB)
解释.txt
Makefile
TEST_DLL
----TEST_DLL.pro.user(18KB)
----Makefile(7KB)
----vc90.pdb(196KB)
----test_dll.cpp(225B)
----release()
----Makefile.Debug(5KB)
----debug()
--------TEST_DLL.dll(28KB)
--------TEST_DLL.pdb(347KB)
--------TEST_DLL.intermediate.manifest(621B)
--------TEST_DLL.exp(1KB)
--------test_dll.obj(37KB)
--------TEST_DLL.ilk(286KB)
--------TEST_DLL.lib(3KB)
----TEST_DLL.pro(694B)
----TEST_DLL_global.h(258B)
----Makefile.Release(5KB)
----test_dll.h(384B)
DLL_CALLS.pro.user
DLL_CALL2_2
----DLL_CALL2_2.pro(313B)
----main.cpp(143B)
DLL_CALLS.pro
DLL_CALL2_3
----Makefile(7KB)
----DLL_CALL2_3.pro(313B)
----vc90.pdb(412KB)
----release()
----Makefile.Debug(5KB)
----debug()
--------DLL_CALL2_3.exe(26KB)
--------DLL_CALL2_3.intermediate.manifest(878B)
--------DLL_CALL2_3.pdb(603KB)
--------DLL_CALL2_3.ilk(316KB)
--------main.obj(42KB)
----main.cpp(691B)
----Makefile.Release(5KB)
----PLUGIN_DLL.dll(36KB)
DLL_CALL3
----DLL_CALL3.pro(565B)
----Makefile(7KB)
----vc90.pdb(420KB)
----release()
----Makefile.Debug(5KB)
----debug()
--------DLL_CALL3.exe(24KB)
--------DLL_CALL3.ilk(281KB)
--------DLL_CALL3.intermediate.manifest(878B)
--------TEST_DLL.dll(28KB)
--------DLL_CALL3.pdb(579KB)
--------main.obj(37KB)
--------PLUGIN_DLL.dll(36KB)
----main.cpp(394B)
----Makefile.Release(5KB)