DLL引用的问题
我开发要用到一个图像解压缩的DLL,没有说明文档,有一个在delphi里使用的例子,我现在用VB时,引用这个DLL时提示“不能将引用加入到指定文件”,是不是这个DLL不能在VB里使用,有什么办法可以解决吗? 问题点数:50、回复次数:9Top
1 楼kssys()回复于 2006-06-01 09:53:30 得分 10
楼主或者直接使用声明即可。
如:
Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, _
ByVal lpFileName As String) As Long
Top
2 楼liuping00(梦醒时分)回复于 2006-06-01 10:33:17 得分 0
谢谢,我按你的写了,使用时提示“DLL 调用约定错误”Top
3 楼liuping00(梦醒时分)回复于 2006-06-01 10:49:26 得分 0
但是函数应该是运行成功了,因为输出了文件,生成了exe后运行又不出错,调试时会报错Top
4 楼kssys()回复于 2006-06-01 11:03:55 得分 10
调用约定错误的原因是因为你的参数类型有问题。可能导致返回的结果并不是预期的值。
检查你传递的参数类型。以及byval/byrefTop
5 楼liuping00(梦醒时分)回复于 2006-06-01 12:27:56 得分 0
delphi中是这样写的:SIC_Decoder: function(pInFile, pOutFile: PChar): Integer; stdcall;
我在VB中这样写有错吗? Public Declare Function SICDecoder Lib "sicdec.dll" (ByVal pInFile As String, ByVal pOutFile As String) As Long
应该是这样写吧Top
6 楼kssys()回复于 2006-06-01 13:13:31 得分 10
Dephi不是很熟也。
可能有错的在:ByVal pOutFile As String
VB 的字符串类型和其它语言的有差异。Top
7 楼loveyouvb()回复于 2006-06-01 23:16:29 得分 10
怎么会不能将引用加入到指定文件呢
可以的呀 你还要定义才可以用的哟 Dim a As New abcTop
8 楼PctGL()回复于 2006-06-05 11:39:08 得分 10
传参数时这样试试:Public Declare Function SICDecoder Lib "sicdec.dll" (ByVal pInFile As String, ByVal pOutFile As String) As Long
call sicdecoder “c:\123.txt” & chr(0) ,“c:\456.txt” & chr(0)Top
9 楼liuping00(梦醒时分)回复于 2006-06-06 10:57:22 得分 0
谢谢大家,都试了,调试时还是会报“DLL 调用约定错误”,反正生成EXE文件后运行不会出问题,先就这样弄吧
现在到是有个大问题,都是从COM1串口中取数据,二进制的
delphi取出的是:0,0,177,8,74,0,85,170,69,67,17,0,77,24……
VB取出的是 :177,8,74,85,170,69,67,17,77,24,93,69……
好像VB中的0都丢失了,是不是我那里设置有问题
With MSComm1
.CommPort = Int(Comm1Port)
.Settings = "115200,N,8,1"
.InBufferSize = 500
.OutBufferSize = 2
.InputMode = comInputModeBinary
.InputLen = 0
.SThreshold = 1
.InBufferCount = 0
.OutBufferCount = 0
MaxW = -99
.RThreshold = 1
End WithTop




