Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.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# C语言中的vb dll奇怪输出# 模块1 公共声明函数GET_CALCULATION_FAN_lone Lib“ebmpapsptfan.dll”(ByRef路径为字符串)的长度 私有声明函数GET_PRODUCTS Lib“ebmpapsfan.dll”(ByRef路径为字符串)的长度为 公共声明函数集\u XML\u路径库“ebmpapsfan.dll”(ByRef路径为字符串)的长度为 副标题() Dim Int_A为长字符串,Int_B为长字符串,Str_输入为字符串 Str\u Input=“C:\Users\Sebastiaan\AppData\Local\ebmpapst\Product\u selector\u 2011\Data\Fans\” Int_A=设置XML路径(Str_输入) Int_B=获取产品(“114709;A3G800AV0101;”) 端接头 端模块_C#_Vb.net - Fatal编程技术网

C# C语言中的vb dll奇怪输出# 模块1 公共声明函数GET_CALCULATION_FAN_lone Lib“ebmpapsptfan.dll”(ByRef路径为字符串)的长度 私有声明函数GET_PRODUCTS Lib“ebmpapsfan.dll”(ByRef路径为字符串)的长度为 公共声明函数集\u XML\u路径库“ebmpapsfan.dll”(ByRef路径为字符串)的长度为 副标题() Dim Int_A为长字符串,Int_B为长字符串,Str_输入为字符串 Str\u Input=“C:\Users\Sebastiaan\AppData\Local\ebmpapst\Product\u selector\u 2011\Data\Fans\” Int_A=设置XML路径(Str_输入) Int_B=获取产品(“114709;A3G800AV0101;”) 端接头 端模块

C# C语言中的vb dll奇怪输出# 模块1 公共声明函数GET_CALCULATION_FAN_lone Lib“ebmpapsptfan.dll”(ByRef路径为字符串)的长度 私有声明函数GET_PRODUCTS Lib“ebmpapsfan.dll”(ByRef路径为字符串)的长度为 公共声明函数集\u XML\u路径库“ebmpapsfan.dll”(ByRef路径为字符串)的长度为 副标题() Dim Int_A为长字符串,Int_B为长字符串,Str_输入为字符串 Str\u Input=“C:\Users\Sebastiaan\AppData\Local\ebmpapst\Product\u selector\u 2011\Data\Fans\” Int_A=设置XML路径(Str_输入) Int_B=获取产品(“114709;A3G800AV0101;”) 端接头 端模块,c#,vb.net,C#,Vb.net,结果 Int_A=12884901888 Int_B=25 如何用C#而不是VB重写此代码 [DllImport("EbmPapstFan.dll")] public static extern long SET_XML_PATH(String path); [DllImport("EbmPapstFan.dll")] static extern long GET_CALCULATION_FAN_ALONE(String fanDescription); [DllImport("EbmPap

结果

Int_A=12884901888
Int_B=25

如何用C#而不是VB重写此代码

[DllImport("EbmPapstFan.dll")]
public static extern long SET_XML_PATH(String path);

[DllImport("EbmPapstFan.dll")]
static extern long GET_CALCULATION_FAN_ALONE(String fanDescription);

[DllImport("EbmPapstFan.dll")]
public static extern long GET_PRODUCTS(String fanDescription);

static void Main(string[] args)
{
    long a = SET_XML_PATH(@"C:\Users\Sebastiaan\AppData\Local\ebmpapst\Product_selector_2011\Data\Fans\");
    long b = GET_PRODUCTS("114709;A3G800AV0101;");
}
结果

A=579780113483169791
B=4294967292

我写了这个C#代码,但是输出不一样,怎么解决这个问题

当我将long改为int时,结果是a=-1b=4


dll在Dephi中,应该给出相同的输出,将
字符串
参数更改为
ref string
s(以匹配VB.Net的
ByRef


调用函数时需要传递一个
ref
字符串变量。

如果使用4.0,则可以尝试此操作。不确定,但可能会有帮助。使用动态关键字

dynamic comInterop= Activator.CreateInstance(Type.GetTypeFromProgID("MyCOM.Object.Name"));
var result = comInterop.MethodCall(parameter);

DLL中的函数是如何定义的?vb和c#之间的字符串是不同的
Fans
Vs
PlugFans\u R-Typen
。我无法打开dll,因为无法访问该文件。