我有C++经验但不是MSVC.
我想要做的是将来自开源项目的.dll合并到我的项目中.代码可用,我已经构建了它.我有.dll以及.lib,据我所知它是C++项目所必需的.
现在很遗憾没有简单的"添加引用",将我的.dll放入include目录并将其添加到我的解决方案中.我编辑了项目属性页面,C/C++ Additional Include Directories选项以及添加.lib作为附加链接器依赖项.我在解决方案树中为dll和lib创建了一个include目录.
我的问题是当我尝试从文档中包含头文件时,VS输出会发出错误消息.现在我意识到我正在使用dll/lib组合,并且我的解决方案中没有.h文件,所以如何添加正确的包含?我正在使用QT工具包,但是我如何从开源库中添加其他头文件/ dll使我失望.
有人可以指出我正确的方向.
现在我做这样的事情,如果我在我的DLL中有很多我想要引用的函数,它看起来很麻烦.是否有更好,更清晰的方式来访问函数,而无需为每个函数定义创建一个typedef,以便它可以正确地编译和加载函数.我的意思是函数定义已经在.h文件中,我不应该在加载函数后重新声明它们(或者我?)是否有比使用LoadLibary更好的解决方案?如果有一种方法可以在Visual Studio 2005项目设置中执行相同的操作,我不一定需要该功能.
#include "stdafx.h"
#include <windows.h>
#ifndef BHANNAN_TEST_CLASS_H_
#define BHANNAN_TEST_CLASS_H_
extern "C" {
// Returns n! (the factorial of n). For negative n, n! is defined to be 1.
int __declspec (dllexport) Factorial(int n);
// Returns true iff n is a prime number.
bool __declspec (dllexport) IsPrime(int n);
}
#endif // BHANNAN_TEST_CLASS_H_
Run Code Online (Sandbox Code Playgroud)
#include "stdafx.h"
#include "BHannan_Test_Class.h"
// Returns n! (the factorial of n). For negative n, n! is defined to be 1.
int Factorial(int n) {
int …Run Code Online (Sandbox Code Playgroud)