我对编写DLL或Visual Studio没有多少经验。基本上我想在非VS(即Qt)项目中使用在Visual Studio中创建的DLL。默认DLL(VS2010)的.h
文件是:
// test-lib.h
#pragma once
using namespace System;
namespace testlib {
public ref class Class1
{
//...
};
}
我能够毫无问题地构建DLL,但我不知道如何将它包含在我的Qt项目中。也就是说,当我尝试编译它时,我得到了
.. \ test-lib.h:6:错误:C2871:'System':具有此名称的命名空间 不存在.. \ test-lib.h:10:错误:C2059:语法错误:'public' .. \ test-lib.h:11:错误:C2143:语法错误:缺少';'在'{'之前 等
尽管我正在编译VS2012的编译器,但我的Qt版本也是用它构建的。有谁知道我怎么能做这个工作?在我的.pro
文件中,我目前已将dll添加到LIBS
,是否还需要添加其他dll?
答案 0 :(得分:1)
假设您的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)
。