CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  COM/DCOM/COM+

DLL引用的问题

楼主liuping00(梦醒时分)2006-06-01 09:39:46 在 VB / COM/DCOM/COM+ 提问

我开发要用到一个图像解压缩的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

相关问题

关键词

得分解答快速导航

  • 帖主:liuping00
  • kssys
  • kssys
  • kssys
  • loveyouvb
  • PctGL

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo