C# 调用 CH375DLL.DLL 函数 :报错 堆栈不对称!
  1. 问题:C# 调用 CH375OpenDevice 函数报错 堆栈不对称!

    相关代码:


     if (CH375OpenDevice(i) != INVALID_HANDLE_VALUE)

      {//初始化时检测是否有已插入的CH372/CH375设备                   

     return HID_RETURN.DEVICE_OPENED;

     CH375CloseDevice(i);

    }

       [DefaultDllImportSearchPaths(DllImportSearchPath.AssemblyDirectory)]

        [DllImport("CH375DLL.DLL", EntryPoint = "CH375CloseDevice", CallingConvention = CallingConvention.Cdecl)]

        public static extern void CH375CloseDevice(ulong iIndex);

        [DefaultDllImportSearchPaths(DllImportSearchPath.AssemblyDirectory)]

        [DllImport("CH375DLL.DLL", EntryPoint = "CH375OpenDevice", CallingConvention = CallingConvention.Cdecl)]

        public static extern IntPtr CH375OpenDevice(ulong iIndex);

2.有没有c#调用CH375DLL.DLL的相关Demo?我们现在使用CH32V307单片机。

谢谢!

我们所有API函数都是 STDCALL 不是CDECL


谢谢,修改后,依然报错。

1662692286202568.png

1662692286154158.png

1662692286212470.png



1测试例程文件:CH372DBG\DEBUG372 里调用 CH375OpenDevice 传递的参数是LONG.

2发布DLL文件:CH372DRV\LIB\C \CH375DLL.H 定义CH375OpenDevice 传递的参数是ULONG.

什么原因,参数类型是LONG or ULONG?


icon_rar.gifCSHARP.rar

用这个试试。


您给的这个版本太老了,我用的是VS2017.

1.CH372DRV\LIB\C \内的LIB和头文件 在VS2017MFC程序中可以使用,没有报错!,C#引用DLL时,报错不可以。

2.有C#的相关Demo吗?我上位机要操作EXCEL,用MFC写有些费劲!



CSHARP.rar 里面的例程可用,谢谢您!


只有登录才能回复,可以选择微信账号登录