我有一个用VC ++ 6.0编写的C源代码,我需要将该代码用于正在编写的C#应用程序中。
我已经做了一些事情来实现这一目标,我已经在发布模式下运行了该C源文件,并在其中生成了中间体.manifest文件和其他文件,我可以使用其中的任何文件来解决问题。
您要做的是导入dll,如下所示:
[DllImport("user32.dll")]//This is where you identify your dll...
public static extern int MessageBoxA( //This would be an object from your dll
int h, string m, string c, int type);
public static int Main()
{
return MessageBoxA(0, "Hello World!", "My Message Box", 0);
}
您需要搜索以了解此信息的关键字是“运行非托管代码”和“ PInvoke”。
另一种替代方法是将C代码包装在托管C ++中。 Microsoft将其称为C ++ / CLI。无论如何,您都可以从该包装器中编译一个“程序集”。程序集只是一个包含托管代码的DLL。然后,您可以从完全托管的C#应用程序中“引用”(链接的托管等效项)。因此,依赖关系可能看起来像这样:
C->托管C ++-> C#
如果您足够舒适地用C ++包装C代码,则可以按照this微软指南轻松地制作一个dll。它详细说明了如何使用C ++创建dll。如果您需要更深入的解释,请随时与我联系,我将尽力提供快速的操作方法。
也请告知我您使用的是其他IDE还是环境,我可以根据您的需要提供更准确的答案。
可能会在今天晚些时候,尽管目前时间紧迫。