在非VS项目中包含VS DLL

时间:2012-12-24 04:43:06

标签: c++ visual-studio qt dll

我对编写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?

1 个答案:

答案 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)