2013-03-14 79 views
0

有没有从C#(ASP.NET)调用本地C++或Delphi Dll的最佳实践?是调用还是COM互操作访问这些Dll的最佳方式?从C#调用本机Delphi代码#

+0

我建议去托管C++的包装。 你到底想做什么? – Danahi 2013-03-14 13:57:05

+0

这解释了您的选项:http://blogs.msdn.com/b/msdnts/archive/2010/05/03/call-native-c-dll-from-c-code.aspx – 2013-03-14 13:58:20

+0

2分钟..只是_too_长。 – 2013-03-14 13:58:22

回答

1

可以使用的DllImport来实现你的目标,按以下操作:

[DllImport("kernel32.dll")] 
public static extern IntPtr OpenProcess(uint dwDesiredAccess, bool bInheritHandle, int dwProcessId); 

你可以用任何的Win32 DLL兼容,其中包括德尔福的人使用它。

+0

这是否也适用于调用32位DLL的64位机器?还是必须为这些情况提供本机代码的64位DLL? – Konrad 2013-03-14 14:00:54

+2

@Konrad如果您将C#代码构建为x86,那么您需要提供32位DLL。如果构建为“AnyCPU”,则需要在x86操作系统上提供32位DLL,并在x64操作系统上提供64位DLL。 – 2013-03-14 14:02:12

+0

好的,谢谢@AlvinWong :-) – Konrad 2013-03-14 14:04:05