TDCU8004_SetDotStatus
怎么定义的,如果C#定义的TDCU8004_SetDotStatus和Delphi的不一致,就会出错。
怎么定义的,如果C#定义的TDCU8004_SetDotStatus和Delphi的不一致,就会出错。
解决方案 »
- 求正则表达式获取表格内容
- 关于在listview中图标显示的问题
- C#调用为公开的API RunFileDlg,显示问题
- 如何用代码(而不用设计)定义一个小对话框,小窗体上有两个文本框和一个命令钮,并且控件之间的相互位置适中。
- 焦点变动能没有选中变蓝的效果吗
- 请求那位大大给个用C#编写的钟表程序
- C# winform的ComBox控件如何向上下拉選擇?
- 如何用C#来判断窗体是否被active,请大家指教
- .Net 前后台交互问题
- 在Web窗体设计器未能加载该文件 自定义封送拆收器...不实现ICustomMarshaler接口
- winform中Application.Run(new Main());这个语句报错怎么回事?
- GMap.net中如何扩展Marker库,支持GIF格式的Marker,怎么实现?求解答!
TDCU8004_SetDotStatus为什么dllimport那里都是使用
TDCU8004_DotStatusOne这两个结构定义一样吗
Aukit_DCU8004SetDotStatus这个函数没响应
Aukit_DCU8004_SetDotStatus这个函数报错。
我在两个帖子里分别写了。delphi例子: TDCU8004_GetDotStatus = packed array[0..37] of packed record
DotAddr : byte;
DotStatus : byte;
end;var
iSt: byte;
rDotStatus:TDCU8004_GetDotStatus;
begin
if Aukit_DCU8004GetDotStatus(fCom.H,fDcuID,rDotStatus,fSleep) = 0 then
begin
cbGetDotSt.Checked := true;
iSt := rDotStatus[4].DotStatus;
case iSt of
3: rgGetDotSt.ItemIndex := 0;
4: rgGetDotSt.ItemIndex := 1;
0: rgGetDotSt.ItemIndex := 2;
end;
end
else
cbGetDotSt.Checked := false;
end;
尝试读取或写入受保护的内存。这通常指示其他内存已损坏的解决办法收集。
DotAddr : byte;
DotStatus : byte;
end;
这是参照例子的实现,但无响应。
delphi定义如下:
function Aukit_DCU8004GetDotStatus
(
hCom:THandle;
DcuID:integer;
var rDotStatus:TDCU8004_GetDotStatus;
rSleep:TSleep
): integer; stdcall;
external 'DCU8004.dll' name 'Aukit_DCU8004GetDotStatus';function Aukit_DCU8004SetDotStatus
(
hCom:THandle;
DcuID:integer;
const rDotStatus:TDCU8004_SetDotStatus;
rSleep:TSleep
): integer; stdcall;
external 'DCU8004.dll' name 'Aukit_DCU8004SetDotStatus';
C# dllimport如下: //[DllImport("DCU8004.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
//public static extern int Aukit_DCU8004GetDotStatus(IntPtr hCom, int DcuID, ref TDCU8004_DotStatusOne[] dotstatus, TSleep tSleep); //[DllImport("DCU8004.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
//public static extern int Aukit_DCU8004SetDotStatus(IntPtr hCom, int DcuID, TDCU8004_DotStatusOne[] dotstatus, TSleep tSleep);