簡體   English   中英

如何將DllImport與C ++類一起使用?

[英]How do I use DllImport with a C++ class?

我正在嘗試使用用C ++編寫的DLL。 在DLL的示例中,有一個標題(.h),代碼如下:

#ifndef CODEGEN_H
#define CODEGEN_H

// Entry point for generating codes from PCM data.
#define VERSION 3.15

#include <memory>
#include <string>

#ifdef _MSC_VER
    #ifdef CODEGEN_EXPORTS
        #define CODEGEN_API __declspec(dllexport)
        #pragma message("Exporting codegen.dll")
    #else
        #define CODEGEN_API __declspec(dllimport)
        #pragma message("Importing codegen.dll")
    #endif
#else
    #define CODEGEN_API
#endif

class Fingerprint;
class CODEGEN_API Codegen
{
public:
    Codegen(const float* pcm, uint numSamples, int start_offset);

    string getCodeString(){return _CodeString;}
    int getNumCodes(){return _NumCodes;}
    float getVersion() { return VERSION; }
private:
    string _CodeString;
    int _NumCodes;
};

#endif

如何訪問dll並使用他們的方法? 我知道我將不得不使用[DllImports("codegen.dll")]但是因為我使用相同形式的構造函數給出了示例?

P / Invoke旨在使用C API,而不是C ++類。

您需要在C API中包裝C ++類並導出它。 然后,您可以P / Invoke(使用[DllImport(...)] )C API中的各個方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM