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;”) 端接头 端模块
结果 Int_A=12884901888C# 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_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=579780113483169791B=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
VsPlugFans\u R-Typen
。我无法打开dll,因为无法访问该文件。