如何导出C#dll方法/函数以在C+中使用它+;
我已经用C#完成了我的部分编码,下面给出了一个小方法如何导出C#dll方法/函数以在C+中使用它+;,c#,c++,unmanaged,dllexport,C#,C++,Unmanaged,Dllexport,我已经用C#完成了我的部分编码,下面给出了一个小方法 public static unitdefn GetUnit(XmlDocument doc) { XmlNodeList nodeList1 = (XmlNodeList)doc.DocumentElement.SelectNodes("//UnitDefinitions/Unit"); int countdefn = nodeList1.Count; unitdefn[] ar
public static unitdefn GetUnit(XmlDocument doc)
{
XmlNodeList nodeList1 = (XmlNodeList)doc.DocumentElement.SelectNodes("//UnitDefinitions/Unit");
int countdefn = nodeList1.Count;
unitdefn[] arrunt = new unitdefn[countdefn];
if (countdefn != 0)
{
int i = 0;
foreach (XmlNode node in nodeList1)
{
XmlAttribute att = node.Attributes["name"];
if (att != null)
{
string idu = node.Attributes["name"].Value;
//System.Console.WriteLine(id1);
arrunt[i].name = idu;
}
i++;
}
}
return arrunt[0];
}
我希望这个方法在我的C++项目中使用,我已经做了如下的< /P>
int xmlRead()
{
int x=1,s=1;
char xmldllpath[1000]="//dllpath";
HMODULE h = LoadLibrary(xmldllpath);
if (!h) {
printf("error: Could not load %s\n", xmldllpath);
return 0; // failure
}
getAdr(&s, h, "GetUnit");
}
dll已成功加载,但未获取该方法
任何具体的方法都不要。不支持从C#导出方法。手动编辑发出的程序集几乎是不可能的,但实际上-不要这样做 您可以使用以下几种适当的解决方案:
- 使用C++/CLI项目向非托管代码公开托管方法
- 使用COM(.NET基本上是COM 2,所以这非常容易;在C++方面也很容易消耗)
- 在初始化时将委托传递给非托管代码,并在需要时调用该委托
- 使用其他进程间通信方法(例如命名管道、TCP…)
- 使用C++/CLI项目向非托管代码公开托管方法
- 使用COM(.NET基本上是COM 2,所以这非常容易;在C++方面也很容易消耗)
- 在初始化时将委托传递给非托管代码,并在需要时调用该委托
- 使用其他进程间通信方法(例如命名管道、TCP…)
- 使用C++/CLI项目向非托管代码公开托管方法
- 使用COM(.NET基本上是COM 2,所以这非常容易;在C++方面也很容易消耗)
- 在初始化时将委托传递给非托管代码,并在需要时调用该委托
- 使用其他进程间通信方法(例如命名管道、TCP…)
- 使用C++/CLI项目向非托管代码公开托管方法
- 使用COM(.NET基本上是COM 2,所以这非常容易;在C++方面也很容易消耗)
- 在初始化时将委托传递给非托管代码,并在需要时调用该委托
- 使用其他进程间通信方法(例如命名管道、TCP…)
- 不要这样做。不支持从C#导出方法。手动编辑发出的程序集几乎是不可能的,但实际上-不要这样做
您可以使用以下几种适当的解决方案:
- 不要这样做。不支持从C#导出方法。手动编辑发出的程序集几乎是不可能的,但实际上-不要这样做
您可以使用以下几种适当的解决方案:
- 不要这样做。不支持从C#导出方法。手动编辑发出的程序集几乎是不可能的,但实际上-不要这样做
您可以使用以下几种适当的解决方案: