![]() |
【转帖】请各路高手说说__declspec(dllimport)是用在什么地方的?
编DLL的时候偶只用过__declspec(dllexport),只是一直想知道__declspec(dllimport)是干什么用的,怎么用?
|
回复: 【转帖】请各路高手说说__declspec(dllimport)是用在什么地方的?
从书上看到的:
使编译器延迟建立vtable,直到一个真正的实例被创建起来的时候,才建立vtable!为了压缩最后生成的代码长度! |
回复: 【转帖】请各路高手说说__declspec(dllimport)是用在什么地方的?
__declspec( dllexport )是告诉编译器这个函数(或变量)是dll的导出函数。
而__declspec(dllimport)就是告诉编译器这个函数(或变量)是某个dll里的导出函数,连接时进行查找lib文件。 一般动态连接库头文件写法就是 #ifdef _DLL #define FUNC_DLL __declspec( dllexport ) #else #define FUNC_DLL __declspec( dllimport) #endif |
回复: 【转帖】请各路高手说说__declspec(dllimport)是用在什么地方的?
导出函式__declspec(dllexport)在dll中用
导入函式__declspec(dllimport)在要调用dll的程序中用 用__thread或__declspec(thread)声明线程局部变量。 |
回复: 【转帖】请各路高手说说__declspec(dllimport)是用在什么地方的?
我现在要编一个DLL供PB调用,有两个函数同名,只是参数稍有不同,请问怎么定义def文件?
例如: long ABC(int intFlag,char* aaa) long ABC(int intFlag,long* bbb) 应该怎么去编这样的dll ? > 解决了!谢谢上面的各位! 1、在dll中合并为一个函数: extern "C" long __stdcall ABC(int intFlag,void* aaa) 然后在函数内部,根据情况对aaa进行 (char*) 和 (long*),分别进行处理。 这样def文件中只有一个函数名ABC,就没有问题了。 2、在PB中声明如下: Function long ABC(long intFlag,ref string aaa) Library 'my.dll' alias for "ABC" Function long ABC(long intFlag,ref long bbb) Library 'my.dll' alias for "ABC" |
回复: 【转帖】请各路高手说说__declspec(dllimport)是用在什么地方的?
14 楼wshcdr(dd)回复于 2005-04-01 22:38:18 得分 0
DLL导出有两种方法 1.DEF文件描述 2._declspec(dllexport) 还有一个HACK的办法,用指针实现的Top 15 楼jronald(深白色)回复于 2005-04-01 23:32:35 得分 0 找到答案了 用_declspec(dllimport)是为了让编译器生成效率更高的代码,不用也不会出错 |
所有的时间均为北京时间。 现在的时间是 12:37 PM. |