Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将DllImport与C++;上课? 我试图使用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 \ifndef CODEGEN\u H #定义CODEGEN_H //从PCM数据生成代码的入口点。 #定义版本3.15 #包括 #包括 #ifdef硕士学位 #ifdef CODEGEN_导出 #定义CODEGEN_API___declspec(dllexport) #pragma消息(“导出codegen.dll”) #否则 #定义CODEGEN_API____declspec(dllimport) #pragma消息(“导入codegen.dll”) #恩迪夫 #否则 #定义CODEGEN_API #恩迪夫 类指纹; 类CODEGEN\u API CODEGEN { 公众: Codegen(常数浮点*pcm、单位数采样、整数起始偏移); string getCodeString(){return\u CodeString;} int getNumCodes(){return\u NumCodes;} float getVersion(){return VERSION;} 私人: 字符串_code字符串; 内纽极; }; #恩迪夫_C#_.net_Dllimport - Fatal编程技术网

C# 如何将DllImport与C++;上课? 我试图使用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 \ifndef CODEGEN\u H #定义CODEGEN_H //从PCM数据生成代码的入口点。 #定义版本3.15 #包括 #包括 #ifdef硕士学位 #ifdef CODEGEN_导出 #定义CODEGEN_API___declspec(dllexport) #pragma消息(“导出codegen.dll”) #否则 #定义CODEGEN_API____declspec(dllimport) #pragma消息(“导入codegen.dll”) #恩迪夫 #否则 #定义CODEGEN_API #恩迪夫 类指纹; 类CODEGEN\u API CODEGEN { 公众: Codegen(常数浮点*pcm、单位数采样、整数起始偏移); string getCodeString(){return\u CodeString;} int getNumCodes(){return\u NumCodes;} float getVersion(){return VERSION;} 私人: 字符串_code字符串; 内纽极; }; #恩迪夫

C# 如何将DllImport与C++;上课? 我试图使用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 \ifndef CODEGEN\u H #定义CODEGEN_H //从PCM数据生成代码的入口点。 #定义版本3.15 #包括 #包括 #ifdef硕士学位 #ifdef CODEGEN_导出 #定义CODEGEN_API___declspec(dllexport) #pragma消息(“导出codegen.dll”) #否则 #定义CODEGEN_API____declspec(dllimport) #pragma消息(“导入codegen.dll”) #恩迪夫 #否则 #定义CODEGEN_API #恩迪夫 类指纹; 类CODEGEN\u API CODEGEN { 公众: Codegen(常数浮点*pcm、单位数采样、整数起始偏移); string getCodeString(){return\u CodeString;} int getNumCodes(){return\u NumCodes;} float getVersion(){return VERSION;} 私人: 字符串_code字符串; 内纽极; }; #恩迪夫,c#,.net,dllimport,C#,.net,Dllimport,如何访问dll并使用它们的方法?我知道我必须使用 [dLimPurt](“CoEGEG.DLL”)< /C>。但是,当我使用同一个表单的构造器给出这个例子时,P/JooKE是用C API工作的,而不是C++类的。 你需要在C++ API中封装C++类,然后导出它。然后,您可以P/调用(使用[DllImport(…)])C API中的各个方法。但是如何进行此导出?即使DLL在C++中也可以工作,@ ReANiRigaCaleSO,你所拥有的DLL不能和P/Unjk一样使用——你需要用C++来完成它

如何访问dll并使用它们的方法?我知道我必须使用<代码> [dLimPurt](“CoEGEG.DLL”)< /C>。但是,当我使用同一个表单的构造器给出这个例子时,

P/JooKE是用C API工作的,而不是C++类的。


<>你需要在C++ API中封装C++类,然后导出它。然后,您可以P/调用(使用
[DllImport(…)]
)C API中的各个方法。

但是如何进行此导出?即使DLL在C++中也可以工作,@ ReANiRigaCaleSO,你所拥有的DLL不能和P/Unjk一样使用——你需要用C++来完成它,或者在C(或单独的DLL)中用C API来公开它。我可以在另一个DLL中编译这个DLL?@ ReANiRigaCalSeSO是的,你可以用C++/CLI或C API来制作一个新的库,这个包/调用机制不是针对C++类的,它只适用于C++ API。您需要编写包装函数,或者使用C++/CLI而不是C#。可能与,