这是C的
//1.
HANDLE __stdcall  rf_init(__int16 port,long baud);
//2.
__int16 __stdcall rf_exit(HANDLE icdev);
//3.
__int16 __stdcall rf_card(HANDLE icdev,unsigned char _Mode,unsigned long *_Snr);
以下是我的[DllImport("E:/FSBPR/ICCard/mwrf32.dll", EntryPoint = "rf_exit")]
public static extern Single rf_init(int post,long baud);
[/code]
请问这三条要怎么来引用谢谢

解决方案 »

  1.   

    以下是VB 6.0的 那C# 要怎么写呢
    Declare Function rf_init Lib "mwrf32.dll" (ByVal port%, ByVal baud As Long) As Long
    Declare Function rf_exit Lib "mwrf32.dll" (ByVal icdev As Long) As Integer
    Declare Function rf_card Lib "mwrf32.dll" (ByVal icdev As Long, ByVal mode%, Snr As Long) As Integer谢谢
      

  2.   

    http://topic.csdn.net/t/20060509/11/4738192.html
      

  3.   

    还有由于内存分配问题
    可以考虑把所有long型改成int(甚至Int16)型试试
      

  4.   

    [DllImport("E:/FSBPR/ICCard/mwrf32.dll")]
    public static extern int rf_init(int port, long baud);调用:icdev = Basic.rf_init(0, 115200);出上面的错
      

  5.   

    try  catch出来的错误具体是什么?
      

  6.   

    对 PInvoke 函数“ICCard!ICCard.Basic::rf_init”的调用导致堆栈不对称。
    原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。
    请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。
      

  7.   

    try:
    public   static   extern   int   rf_init(int   port,   int baud); 
      

  8.   

    Declare Function rf_card Lib "mwrf32.dll" (ByVal icdev As Long, ByVal mode%, Snr As Long) As Integer
    这一条C#要怎么写啊
    这个 ByVal mode%, 是怎么回事啊 都没有声明是什么变量
      

  9.   


            [DllImport("E:/FSBPR/ICCard/mwrf32.dll")]
            public static extern int rf_init(int port, int baud);        [DllImport("E:/FSBPR/ICCard/mwrf32.dll", EntryPoint = "rf_exit")]
            public static extern int rf_exit(int icdev);        [DllImport("E:/FSBPR/ICCard/mwrf32.dll", EntryPoint = "rf_exit")]
            public static extern int rf_card(int icdev, int mode, int Snr);现在的init和exit改为int 可以了但是
    //3.
    __int16 __stdcall rf_card(HANDLE icdev,unsigned char _Mode,unsigned long *_Snr);
    还是报错
      

  10.   

    我也出现这个问题了,有没有解决办法啊,我的调用都是int类型的,在台式机运行没有问题,一到笔记本上就出来了.这是怎么回事啊?