相关疑难解决方法(0)

Visual C++中的DLL引用

我有C++经验但不是MSVC.

我想要做的是将来自开源项目的.dll合并到我的项目中.代码可用,我已经构建了它.我有.dll以及.lib,据我所知它是C++项目所必需的.

现在很遗憾没有简单的"添加引用",将我的.dll放入include目录并将其添加到我的解决方案中.我编辑了项目属性页面,C/C++ Additional Include Directories选项以及添加.lib作为附加链接器依赖项.我在解决方案树中为dll和lib创建了一个include目录.

我的问题是当我尝试从文档中包含头文件时,VS输出会发出错误消息.现在我意识到我正在使用dll/lib组合,并且我的解决方案中没有.h文件,所以如何添加正确的包含?我正在使用QT工具包,但是我如何从开源库中添加其他头文件/ dll使我失望.

有人可以指出我正确的方向.

c++ dll visual-c++

44
推荐指数
1
解决办法
10万
查看次数

有没有更好的方法在C++中加载DLL?

现在我做这样的事情,如果我在我的DLL中有很多我想要引用的函数,它看起来很麻烦.是否有更好,更清晰的方式来访问函数,而无需为每个函数定义创建一个typedef,以便它可以正确地编译和加载函数.我的意思是函数定义已经在.h文件中,我不应该在加载函数后重新声明它们(或者我?)是否有比使用LoadLibary更好的解决方案?如果有一种方法可以在Visual Studio 2005项目设置中执行相同的操作,我不一定需要该功能.


BHannan_Test_Class.h

#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)

BHannan_Test_Class.cpp

#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)

c++ windows dll loadlibrary

10
推荐指数
2
解决办法
2万
查看次数

标签 统计

c++ ×2

dll ×2

loadlibrary ×1

visual-c++ ×1

windows ×1