0

DLL や Visual Studio を書いた経験はあまりありません。基本的に、Visual Studio で作成した DLL を非 VS (つまり、Qt) プロジェクトで使用したいと考えています。.hデフォルト DLL (VS2010)のファイルは次のとおりです。

// 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 はありますか?

4

1 に答える 1

1

シンボルのエクスポートなどを使用して C で記述された DLL を想定しています。

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

于 2013-02-19T15:46:42.940 に答える