2016-07-26 87 views
0

我想在c#窗体表单应用程序中使用我的C++类。将C++类转化为C#Windows窗体类的C++类

我在头文件(.h和.cpp)中做了一个C++类,然后我做了一个win32项目,它应该成为一个DLL。

然后,我想在我的C#窗体窗体项目中使用它,但我不知道把它放在哪里或放什么。

This is the StackLibrary.h and .cpp

This is what i have in the c# windows forms project, i added the interopservices and the dllimport. i dont know what to do next or if its correct. pls help.

+0

[STAThread]归属到M ain方法,你不能分开它。写入DllImport高于STAThread。 – 2016-07-26 13:19:07

+0

如何在写入STATHread之上的DllImport后使用函数? –

+0

在DllImport下面,您必须编写函数名称,请参阅示例:https://msdn.microsoft.com/en-us/library/aa288468(v=vs.71).aspx – 2016-07-26 13:23:55

回答

0

你必须写在C++/CLI(RIF https://msdn.microsoft.com/en-us/library/ms235281.aspx。)包装: 编写C++中的包装,用C编写的DLL ++/CLI,然后添加到您的C#项目你不会有任何错误:

StackLibrary DLL(本机C++)< - >包装DLL(C++/CLI)< - > C#项目

+0

我应该用一个包装器来替换stacklibrary dll吗? –

+0

你可以将它们分开:这样你就可以在c#(通过包装器)和其他语言(例如C++,VB,php,...以及可以导入DLL的所有语言)中使用你的StackLibrary DLL。您可以转换StackLibrary项目,添加包装并使用C++/CLI选项进行编译。在这种情况下(stacklibrary dll替换),您将只能将该DLL添加到.Net/Mono项目中。 – Fil

+0

谢谢你的帮助先生,我会尽力解决这个问题 –