???DLL的一个难题
byxdaz 博客专家认证 2005-05-18 12:04:58 有一个.OBJ文件里面有一个变量int ImageWidth,这个.OBJ文件没有源代码的,是别人做的。现在要做一个DLL,这个DLL程序中要用到这个变量(ImageWidth),而且要把ImageWidth这个变量以C的形式输出。请问有什么办法可以实现。
另外的OBJ中的int ImageWidth是公用变量。(.OBJ文件是ThresholdReprocess.obj和PreThreshold.obj,这两个OBJ文件没有源代码的,是别人做的)
如果在DLL中加入 extern _declspec(dllexport) int ImageWidth;没有问题,就会以C++的形式导出ImageWidth变量。如果在DLL中加入 extern “C”extern _declspec(dllexport) int ImageWidth;
出现下面的错误:(程序是用VC编译的,目的是把变量ImageWidth按C的形式导出)
ThresholdReprocess.obj : error LNK2001: unresolved external symbol "int ImageWidth" (?ImageWidth@@3HA)
PreThreshold.obj : error LNK2001: unresolved external symbol "int ImageWidth" (?ImageWidth@@3HA)
Debug/SealCreatLib.dll : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
Creating browse info file...
SealCreatLib.dll - 3 error(s)