Delphi 调用 vc Dll的特别奇怪的问题......(20分)

  • 主题发起人 主题发起人 IUPRG
  • 开始时间 开始时间
I

IUPRG

Unregistered / Unconfirmed
GUEST, unregistred user!
1,按钮里 不加 如下 传递给edit的代码就会出错;
2,按钮上面一按回车键就非法操作,而鼠标click却能正确执行。

[red]
/////引用 外部 dll (用vc6.0 en 做的,一个a/d卡的读卡数据函数)
function readcardpci8020(nchanel:integer):real
stdcall;
external 'Readcard.dll' name '?GetChanelValue@@YAMH@Z';

...
...

//一个调用的按钮事件:

Var DetectValue:array[0..3] of real;
i:integer;
begin
for i:=0 to 3 do
begin
DetectValue:=readcardPci8020(combobox1.itemindex+1);
end;

///////如果不加上这部分代码,单击这个按钮就会发生ABC 处的错误//////
if Rbtn_Left.Checked then
begin
ed_l1.text := floattostr(DetectValue[0]);
ed_l2.text := floattostr(DetectValue[1]);
ed_l3.text := floattostr(DetectValue[2]);
ed_l4.text := floattostr(DetectValue[3]);

end;
if Rbtn_Right.Checked then
begin
ed_r1.text := floattostr(DetectValue[0]);
ed_r2.text := floattostr(DetectValue[1]);
ed_r3.text := floattostr(DetectValue[2]);
ed_r4.text := floattostr(DetectValue[3]);
end;
////////////////////不加这部分代码,单击这个按钮就会发生如下错误:

//////////////// ABC 错误:////////////////////////////////////////////
////Access violation at address 3fc3fb38. read of address 3fc3fb38 ///
//////////////////////////////////////////////////////////////////////


////如果将焦点移动到该按钮,回车,则出现如下非法操作:

该程序执行了非法操作,应用程序即将关闭.
... ...
详细信息:
AXLETREEDETECT 在 0167:bff881fb 的模块
KERNEL32.DLL 中导致无效页错误。
Registers:
EAX=c00301d8 CS=0167 EIP=bff881fb EFLGS=00010206
EBX=00000003 SS=016f ESP=00650000 EBP=00650078
ECX=8196585c DS=016f ESI=8196ff98 FS=2167
EDX=00000000 ES=016f EDI=006502e4 GS=0000
Bytes at CS:EIP:
ff 75 08 8b 7d 0c 57 ff 75 10 6a 01 e8 ca 07 00
Stack dump:
006502e4 8196ff98 00000003 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

[/red]



不知何故?莫名其妙,望各位大虾 帮助!
谢谢![:(]
 
恐怕传回来的值也不对吧,C里面没有real类型
 
我可以帮你的忙,但你要告诉我你是谁!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
661
import
I
I
回复
0
查看
894
import
I
D
回复
0
查看
855
DelphiTeacher的专栏
D
后退
顶部