VB中一个很奇怪的问题(300分)
lnk 2003-05-15 11:44:01 我用Borland C写出的一个Dll:
int FAR PASCAL _export Xyz(unsigned long XStep,unsigned long YStep,
unsigned char XDir,unsigned char YDir,unsigned int AcceStep,
unsigned int MoveSpeed,unsigned int WholeSpeed)
.........
在Vb中调用:
如果在Form1中定义变量:
Private Znewx As Long, Znewy As Long, Movex_Dir As Integer, Movey_Dir As Integer
Private Direct As Integer, Speed As Integer, PubSpeed As Integer
然后再调用If Xyz(Znewx, Znewy, Movex_Dir, Movey_Dir, Direct, Speed, PubSpeed) = 1 Then
则运行后正常,生成EXE后调用则没有返回,死机。
如杲在Module1中定义为全局变量:
Public Znewx As Long, Znewy As Long, Movex_Dir As Integer, Movey_Dir As Integer
Public Direct As Integer, Speed As Integer, PubSpeed As Integer
然后再调用If Xyz(Znewx, Znewy, Movex_Dir, Movey_Dir, Direct, Speed, PubSpeed) = 1 Then
则在程序运行后调用则没有返回,死机。
如果参数不用变量,而是直接赋值,则运行和生成EXE都正常。
Xyz(5000, 4500, 1, 1, 20, 14, 100)
我开始怀凝是不是我的VB出了问题,我的电脑装的是Visual Studio6.0,但在另一台电脑是装的VB6.0
上试效果一样,我不知问题出在哪里?按理说在Form1中定义变量和在Module1中定义为全局变量所起作用
应是一样的。
但如杲把Direct,Speed,PubSpeed变量定义为Long,则运行和生成EXE都正常.