Visual Studio 2008 IDE - 静态链接C Dll库

时间:2009-10-03 00:16:38

标签: c++ dll static-linking

我正在经历这种%& $ ^&的挫折^ Frustraion VS IDE。 我正在使用Visual C ++ 2008 3.5 SP1(但如果需要,我也有专业版,我不想使用loadlibrary())

我有一个用另一种语言创建的测试Dll(基本上不是C语言),它包含一个CDECL函数,它将'int'添加到'double'。我真的想使用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)" (?AddTwoNum@@YAHHN@Z) 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 ==========

1 个答案:

答案 0 :(得分:2)

你可以去:

  

项目属性 - &gt;链接器 - &gt;输入

然后将.lib添加到“附加依赖项”。

另外,你可以把

#pragma comment(lib, "<your .lib>")

在.cpp文件中。