随笔分类 -  C++

摘要:按照MSDN说明,当链接dll的导出函数时,只需要包含头文件和lib,__declspec(dllimport)修饰符不是必须的,但加上该修饰能使导出函数的调用效率更高。那么,究竟原因是什么?不使用 __declspec(dllimport) 也能正确编译代码,但使用 __declspec(dllimport) 使编译器可以生成更好的代码。编译器之所以能够生成更好的代码,是因为它可以确定函数是否存在于 DLL 中,这使得编译器可以生成跳过间接寻址级别的代码,而这些代码通常会出现在跨 DLL 边界的函数调用中。但是,必须使用 __declspec(dllimport) 才能导入 DLL 中使用的 阅读全文
posted @ 2014-03-08 13:39 k1988 阅读(1417) 评论(0) 推荐(0)
摘要:作者:zhaohaiyang_1988@163.com (转载需保留)========================================================================================进入调试的方法====================... 阅读全文
posted @ 2013-11-12 11:39 k1988 阅读(2295) 评论(1) 推荐(1)
摘要:在某项目中,有一些静态库,这些静态库中有类型命名的函数GET_XXX。在一次项目结构调整的时候,我想将调用这静态库的代码编译成DLL,并且将这些Get函数导出,我就直接就这些函数前面添加了_declspec(dllexport),然后代码结构就成为:静态库A: 包括很多_declspec(dllexport)GET_XXX 函数。动态库B:未直接调用GET_XXX调用B的应用程序C:动态Load动态库B,然后使用GetProcAddress获取函数地址后使用。但是很不幸编译出来的中一直没有这些函数。 百思不得其解,最后在网上发现下面的信息(from:http://support.microso 阅读全文
posted @ 2013-02-16 17:03 k1988 阅读(6240) 评论(2) 推荐(0)