我用VB6.0 SP5 写了一个Activex dll, 然后主程序调用这个DLL的一个函数, 这个函数传递一个对象参数, 类似于这样:
Dll 中有个函数: MyFunction(Msflxgrd as Object)
exe的窗体上有个MSFlexgrid1,主程序这样调用:sub MySub()
dim clsNew as New MyDll.ClsNew
call clsNew.MyFunction(MsFlexgrid1)
end sub
现在问题来了:
如果这个DLL和exe都在同一台机器上编译,那么发布是没有问题的, 但是如果DLL在一台机器上编译,EXE在另外的机器上编译, 调用这个DLL就会出现"错误13 类型不匹配".
我试过只要不传递这个MSFlexgrid1就不会有问题,也就是说在传递这个Object上出问题了,但是我两台机器的VB环境是一样的, 我不知道为什么会这样, 这对我发布程序有很大的问题,希望得到高手的指点.
Dll 中有个函数: MyFunction(Msflxgrd as Object)
exe的窗体上有个MSFlexgrid1,主程序这样调用:sub MySub()
dim clsNew as New MyDll.ClsNew
call clsNew.MyFunction(MsFlexgrid1)
end sub
现在问题来了:
如果这个DLL和exe都在同一台机器上编译,那么发布是没有问题的, 但是如果DLL在一台机器上编译,EXE在另外的机器上编译, 调用这个DLL就会出现"错误13 类型不匹配".
我试过只要不传递这个MSFlexgrid1就不会有问题,也就是说在传递这个Object上出问题了,但是我两台机器的VB环境是一样的, 我不知道为什么会这样, 这对我发布程序有很大的问题,希望得到高手的指点.
解决方案 »
- 计算机科学与技术是天分所定吗?
- VB如何控制WORD里字体和段落?
- 关于VB中的ComboBox和asp中的select控件的问题
- 又是我,还是vb程序打包的问题
- 希望得到该图像处理问题的完整解决方案[难题]
- 我是想在程序中,将一个地图图片做背景,像做图工具一样用鼠标右键选中地图某个区域然后读出他的坐标值,我利用所选这个距形坐标的坐标值
- 请教picturebox与vscroll的问题?(在线等候)
- 请问一下下面的代码为什么不能新一个数据源呀?
- 十万火急请帮忙~~~请问,如何能再vb中调用word,然后用word打印access中的word文档呢??
- API 之专业站点,API 之专业工具! 一旦拥有别无所求!
- ActiveReport问题?
- 一个文本框字符串问题
Private Function ObjectFromPtr(ByVal lPtr As Long) As Object
Dim oTemp As Object
' Turn the pointer into an illegal, uncounted interface
CopyMemory oTemp, lPtr, 4
' Do NOT hit the End button here! You will crash!
' Assign to legal reference
Set ObjectFromPtr = oTemp
' Still do NOT hit the End button here! You will still crash!
' Destroy the illegal reference
CopyMemory oTemp, 0&, 4
' OK, hit the End button if you must--you'll probably still crash,
' but it will be because of the subclass, not the uncounted reference
End PropertyPrivate Sub Command1_Click()
Msgbox ObjectFromPtr(ObjPtr(MSFlexGrid1)).Name
End Sub
哇, 好高深啊, 试试先, 不过你上边说了好几个地方 do NOT hit the End button here! You will crash!是不是用这个方法很容易崩溃 啊?END BUTTON 是指键盘上的END键还是程序界面上的退出按钮啊?