在非VS项目中包含VS DLL

Include VS DLL in non-VS project

本文关键字:VS DLL 包含 项目 在非      更新时间:2023-10-16

我没有编写dll或Visual Studio的太多经验。基本上,我想使用在Visual Studio中创建的非vs(即Qt)项目的DLL。默认DLL (VS2010)的.h文件为:

// test-lib.h
#pragma once
using namespace System;
namespace testlib {
    public ref class Class1
    {
        //...
    };
}

我能够构建DLL没有任何问题,但我不知道如何在我的Qt项目中包含它。也就是说,当我试图编译它时,我得到

. test-lib.h:6: error: C2871: 'System':一个带有这个名字的命名空间test-lib.h:10: error: C2059:语法错误:'public'test-lib.h:11:错误:C2143:语法错误:在"{"之前缺少";"等。

这是尽管我正在用VS2012的编译器编译,我的Qt版本也是用它构建的。有人知道我该怎么做吗?在我的.pro文件中,我目前已将dll添加到LIBS,是否还有其他dll需要添加?

假设您的DLL是用C语言编写的,带有符号导出等

typedef void (*NameOfMyDLLFunction)(double* data, int size);
QLibrary* myLibrary = new QLibrary("NameOfMyLibraryFile", this);
myLibrary->load();
NameOfMyDLLFunction dllFunction = reinterpret_cast<NameOfMyDLLFunction(myLibrary->resolve("dllFunction "));

现在你可以调用你的dllFunction(double* data, int size)