Visual Studio 2008 IDE - 静态链接一个C Dll库
我遇到挫折^挫败与此%& $^& VS IDE。我使用Visual C++ 2008 3.5 SP1(但我也有专业版,如果需要,我不想使用loadlibrary())Visual Studio 2008 IDE - 静态链接一个C Dll库
我有一个测试在另一种语言(基本不C ),它包含一个将'int'添加到'double'的CDECL函数。我真的很想使用STDCALL为浮点数添加一个int,但是如果能够让前者首先工作,那将是一个重要的成就。
我已经广泛阅读和尝试: http://support.microsoft.com/kb/313981 http://www.codeproject.com/KB/DLL/loadingdll.aspx Linking to a static lib that links to a static lib statically and dynamically linking DLLs generated with different versions of Visual Studio
我写了一个不错的头文件的AddShow.dll称为AddShow.h
DLLAPI int __cdecl AddTwoNum(int n, double f);
然后我用这个漂亮的工具来创建.lib文件: http://www.binary-soft.com/dll2lib/dll2lib.htm
现在呢?
我尝试了右键单击和'添加'然后'类'然后'组件类',然后指定DLL的路径和名称,但我得到8英里的膨胀和整个Windows工具箱和一个新的AddShow.cpp文件。
我的C++代码是真的简单:
extern int __cdecl AddTwoNum(int n, double f);
int main()
{
int n, RetVal;
double d;
n = 33;
d = 66.6;
RetVal = AddTwoNum(n, d);
cout << "RetVal=" << RetVal;
return 0;
}
如何我只是得到了IDE来链接的.lib文件
新增:?
after linking (.lib file is in the debug file) I get the following error:
Compiling...
main.cpp
Linking...
main.obj : error LNK2019: unresolved external symbol "int __cdecl AddTwoNum(int,double)" ([email protected]@[email protected]) referenced in function _main
C:\C++\FirstDll\Debug\FirstDll.exe : fatal error LNK1120: 1 unresolved externals
Build log was saved at "file://c:\C++\FirstDll\FirstDll\Debug\BuildLog.htm"
FirstDll - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
你可以去:
项目属性 - >链接器 - >输入
那么你的.lib添加到 “附加依赖”。
此外,你可以把
#pragma comment(lib, "<your .lib>")
在.cpp文件。
谢谢你,但我得到上面显示的编译错误。 – 2009-10-06 21:20:55
在你的错误中,AddTwoNum的名字被损坏(?AddTwoNum @@ YAHHN @ Z) 尝试将你的AddTwoNum声明放在extern“C”{} – Kevin 2009-10-07 03:59:23
您可能想要开始使用CMake生成解决方案文件,而不是点击以终止解决方案管理器。我觉得CMake不那么刺激。 – liori 2009-10-03 00:21:41