将DLL与.DEF或.LIB文件链接

时间:2011-09-20 22:05:36

标签: visual-c++ dll linker

警告:我对C ++一无所知。我很习惯使用C#,但这让我感到困惑。

我知道这是一个常见的问题,但我在最后几个小时非常沮丧 - 主要是因为它应该非常简单。

我正在尝试将DLL导入到VC ++ 2010中,对于我的生活,我无法弄清楚这样做的“好方法”。我有包含定义的标头,以及使用“lib”转换为.lib文件的.DEF文件。

我想做的就是能够调用DLL中包含的函数!当我尝试将其添加为引用时,我收到以下错误:无法添加对文件WindowsAccessBridge.dll的引用,因为它既不是.NET程序集也不是注册的ActiveX控件。

我可以使用LoadLibrary / GetProcAddress访问这些函数,但我真的希望有一个'drop in'解决方案,这并不意味着我必须为50多个函数编写代码。

TL; DR:如何将本机C ++ dll导入到我的项目中,以便调用其函数?我有.lib,.def和.dll文件。你的举动?

编辑 - 我意识到正确的答案是“学习你想写的语言。” - 但我真的希望有一种简单的方法来完成这项工作。

代码:

#include "StdAfx.h"
#include "WABAPI.h"
#include "AccessBridgeCalls.h"

WABAPI::WABAPI(void)
{
}

void WABAPI::Init()
{
    initializeAccessBridge();
}

以下是我在Linker中的设置:

enter image description here

1 个答案:

答案 0 :(得分:1)

您在源代码中包含标题:

#include <your_header.h>

然后告诉链接器使用.lib文件:

enter image description here

这张照片来自VS 2008,但是如果内存服务,VS 2010中的布局是相似的。