Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.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#VS 2013如何在DLL中调用程序_C#_Dll_Interop_Pinvoke_Visual Studio 2013 - Fatal编程技术网

C#VS 2013如何在DLL中调用程序

C#VS 2013如何在DLL中调用程序,c#,dll,interop,pinvoke,visual-studio-2013,C#,Dll,Interop,Pinvoke,Visual Studio 2013,我有一个Delphi创建的DLL,其中包含需要从VS 2013 C3应用程序调用的函数。 不确定如何或从哪里开始实现这一点 我是否必须将dll作为引用或以某种方式导入它,或两者都导入? 我怎么称呼这个程序 dll是MSA.dll,我需要调用的方法如下所示: GetXML(txtPath.Text, txtCabFile.Text, False); 任何101条基本建议都值得赞赏。查看一个名为“p/Invoke”的东西。它允许您使用简单的“extern”函数定义调用“native”(即Delph

我有一个Delphi创建的DLL,其中包含需要从VS 2013 C3应用程序调用的函数。
不确定如何或从哪里开始实现这一点

我是否必须将dll作为引用或以某种方式导入它,或两者都导入?
我怎么称呼这个程序

dll是MSA.dll,我需要调用的方法如下所示:

GetXML(txtPath.Text, txtCabFile.Text, False);

任何101条基本建议都值得赞赏。

查看一个名为“p/Invoke”的东西。它允许您使用简单的“extern”函数定义调用“native”(即Delphi、C等)DLL

下面是一个我用作Windows API的p/Invoke调用资源的网站:

编辑:确保.NET端的目标与编译Delphi库的目标相同。如果有疑问,如果你在PC上,可能是x86。多亏下面的评论员让我注意到了这一点。不要使用任何CPU

编辑2:您将使用的外部声明:

[DllImport("MSA.dll", CharSet = Ansi)]
public extern string GetXML(string firstParam, string secondParam, bool thirdParam);

您可以根据需要命名参数。我不知道该怎么称呼他们,所以我只给了他们名字。

另外,请记住,如果你的Delphi DLL是32位的,你必须将你的C#app编译为目标“x86”而不是“AnyCPU”,否则调用将失败。我将此添加到我的答案中,谢谢:)添加了一个p/Invoke声明以清晰和有用。你是认真的吗???你改写了我的问题,删掉了一部分,说我不知道自己在做什么,然后把这个问题搁置起来,因为我没有“对正在解决的问题表现出最低限度的理解”。你们这些人疯了!!!!!我说我不知道怎么做。这个网站到底是做什么的?我猜这对某些人来说是一个积分游戏。我还要补充一点,我不是在寻找代码。我正在寻找一个开始的地方,这就是我在被接受的答案中得到的。