簡體   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