0

我对这个 %&$^& VS IDE 感到沮丧^Frustraion。我正在使用 Visual C++ 2008 3.5 SP1(但如果需要,我也有专业版并且我不想使用 loadlibrary())

我有一个用另一种语言(实际上不是 C 语言)创建的测试 Dll,其中包含一个 CDECL 函数,该函数将“int”添加到“double”中。我真的很想使用 STDCALL 向浮点数添加一个 int,但如果能让前者首先工作,那将是一项重大成就。

我已广泛阅读并尝试过: http://support.microsoft.com/kb/313981 http://www.codeproject.com/KB/DLL/loadingdll.aspx 链接到静态库,静态库链接到静态库 和动态链接使用不同版本的 Visual Studio 生成的 DLL

我为 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 ==========
4

1 回答 1

2

你可以去:

项目属性 -> 链接器 -> 输入

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

此外,你可以把

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

在您的 .cpp 文件中。

于 2009-10-03T00:20:28.673 回答