__declspec(dllimport)
我相信写WIN32程序的人,做过DLL,都会很清楚 __declspec (dllexport)的作用,它就是为了省掉在DEF文件中手工定义导出哪些函数的一个方法。当然,如果你的DLL里全是C++的类的话,你无法在DEF里指定导出的函数,只能用 __declspec (dllexport)导出类。但是,MSDN文档里面,对于 __declspec ( dllimport )的说明让人感觉有点奇怪,先来看看MSDN里面是怎么说的: 不使用 __declspec ( dllimport ) 也能正确编译代码,但使用 __declspec ( dllimport ) 使编译器可以生成更好的代码。编译器之所以能够生成更好的代码,是因为它可以确定函数是否存在于 DLL 中,这使得编译器可以生成跳过间接寻址级别的代码,而这些代码通常会出现在跨 DLL 边界的函数调用中。但是,必须使用 __declspec ( dllimport ) 才能导入 DLL 中使用的变量。 初看起来,这段话前面的意思是,不用它也可以正常使用DLL的导出库,但最后一句话又说, 必须使用 __declspec ( dllimport ) 才能导入 DLL 中使用的变量 这个是什么意思?? 那我就来试验一下,假定,你在DLL里只导出一个简单的类,注意,我假定你已经在项目属性中定义了 SIMPLEDLL_EXPORT