繁体   English   中英

DLL导入的功能在C#上不起作用,但在vb6上起作用

[英]Dll imported functions not working on C# but do on vb6

我使用的是旧的dll文件功能,目前在vb6中正常运行,声明如下:

Public Declare Function DecOutb Lib "DecLib.dll" Alias "_outportb@8" _
(ByVal PortAddress As Long, ByVal state As Byte) As Long

Public Declare Function DecOutLong Lib "DecLib.dll" Alias "_outport@8" _
(ByVal PortAddress As Long, ByVal state As Long) As Long

该功能的实现是这样的:

k = DecOutLong(ad_addr, Data)

如果成功,它将返回k = 1。

但是,当我将其放在.net C#上时,即使我没有收到任何警告或错误,但该函数也不起作用,返回k = 0。 我所做的声明是这样的:

[DllImport("DecLib.dll", EntryPoint = "_outport@8", CallingConvention = CallingConvention.StdCall)]
public static extern int DecOutLong(int PortAddress, int State);

实现是这样的:

k = DecOutLong(ad_addr, DATA);

已修正,我遵循了tcarvin的建议,并将其设置为x86而不是“ Any PC”。 我怀疑在这种情况下还有更多需要澄清的地方,但至少可以奏效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM