CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

vb调用vc的dll的问题,谢谢

楼主charles8513()2006-03-02 21:59:08 在 VB / 基础类 提问

vc的dll的函数原形为:  
  int   GetHardDriveComputerID   (char   *DriveModelNumber,char   *DriveSerialNumber,char   *ComputerId)  
   
  vb中这样写:  
  Public   Declare   Function   GetHardDriveComputerID   Lib   "Diksid.DLL"   (ByVal   DriveModelNumber   As   String,   ByVal   DriveSerialNumber   As   String,   ByVal   ComputerId   As   String)   As   Integer  
   
  Private   Sub   Command1_Click()  
  Dim   s1   As   String   *   200  
  Dim   s2   As   String   *   200  
  Dim   s3   As   String   *   200  
   
  s1   =   "dlskfsalddsfdjljlksfsdfjlsd"    
  s2   =   "jflsjdlskajflsakjflksajfkslajfd"    
  s3   =   "kdslfjewoiruweoiyt5hyh56urweio"    
   
   
  GetHardDriveComputerID   s1,   s2,   s3  
   
  MsgBox   s2  
   
  End   Sub  
   
  怎么提示错误,该怎么调用带char   *的vc中的dll函数?谢谢  
  问题点数:20、回复次数:13Top

1 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-02 22:31:25 得分 0

改一下声明试试:  
   
  Public   Declare   Function   GetHardDriveComputerID   Lib   "Diksid.DLL"   (ByRef   DriveModelNumber   As   String,   ByRef   DriveSerialNumber   As   String,   ByRef   ComputerId   As   String)   As   LongTop

2 楼charles8513()回复于 2006-03-02 22:54:28 得分 0

不行啊Top

3 楼jackyhyoung(愛因思念)回复于 2006-03-03 09:43:47 得分 0

Public   Declare   Function   GetHardDriveComputerID   Lib   "Diksid.DLL"   (ByRef   DriveModelNumber()   As   byte   ,   ByRef   DriveSerialNumber()   As   byte,   ByRef   ComputerId   As   byte)   As   Long  
   
  然后在把字符串改为BYTE数组再试试.Top

4 楼clark_m()回复于 2006-03-07 10:44:33 得分 0

将vc函数原形的char   *XX     改成LPSTR   *XX   在Vb里可以用stringTop

5 楼of123()回复于 2006-03-07 11:09:11 得分 0

Public   Declare   Function   GetHardDriveComputerID   Lib   "Diksid.DLL"   (ByVal   DriveModelNumber   As   String,   ByVal   DriveSerialNumber   As   String,   ByVal   ComputerId   As   String)   As   Long  
   
  在   VB   中,String   类型只能   ByVal   调用,因为它传的是缓冲区的地址。  
   
  或者,  
  Public   Declare   Function   GetHardDriveComputerID   Lib   "Diksid.DLL"   (ByRef   DriveModelNumber()   As   byte   ,   ByRef   DriveSerialNumber()   As   byte,   ByRef   ComputerId()   As   byte)   As   Long  
   
  能说一下报什么错误吗?  
   
  Top

6 楼tztz520(午夜逛街)回复于 2006-03-07 12:47:12 得分 0

在VC下这样声明:  
   
   
  extern   "C"   __declspec(dllexport)   int   GetHardDriveComputerID   (char   *DriveModelNumber,char   *DriveSerialNumber,char   *ComputerId)  
   
  Top

7 楼passionke(每一步都改变未来,却只能有一种结局!)回复于 2006-04-17 17:59:14 得分 0

upTop

8 楼leongwong()回复于 2006-04-17 18:30:18 得分 0

关注!Top

9 楼leongwong()回复于 2006-04-17 18:31:07 得分 0

楼主是如何解决的,上来通告一声!Top

10 楼qiqi5521()回复于 2006-04-17 18:57:59 得分 0

在VC下也可这样声明:  
   
   
    int   _stdcall   GetHardDriveComputerID   (char   *DriveModelNumber,char   *DriveSerialNumber,char   *ComputerId)  
  Top

11 楼jwt3000(风)回复于 2006-04-18 11:29:41 得分 0

char*   最好用LPCTSTRTop

12 楼supergreenbean(超级绿豆(MSMVP - VB) - 升级归来~)回复于 2006-04-18 11:54:35 得分 0

int   __stdcall   GetHardDriveComputerID   (char   *DriveModelNumber,char   *DriveSerialNumber,char   *ComputerId)  
   
  Public   Declare   Function   GetHardDriveComputerID   Lib   "Diksid.DLL"   (ByVal   DriveModelNumber   As   String,   ByVal   DriveSerialNumber   As   String,   ByVal   ComputerId   As   String)   As   Long  
   
  其他不变Top

13 楼dingzhihui(无名)回复于 2006-04-18 13:34:39 得分 0

这样声明试试:  
  Public   Declare   Function   GetHardDriveComputerID   Lib   "Diksid.DLL"   (ByRef   DriveModelNumber()   As   byte   ,   ByRef   DriveSerialNumber()   As   byte,   ByRef   ComputerId()   As   byte)   As   LongTop

相关问题

  • vb调用vc++的dll
  • vc调用vb的dll
  • VC中调用VB生成的DLL(java调用VB的DLL)
  • vb调用vc的DLL问题
  • 如何在vb中调用vc的DLL
  • vb如何调用vc做的dll???
  • VB里怎样调用VC的DLL?
  • 还是VB调用VC的DLL问题
  • VB调用VC编写的DLL
  • vc中怎样调用vb写的dll

关键词

  • dll
  • 函数
  • vc
  • vb
  • getharddrivecomputerid
  • driveserialnumber
  • drivemodelnumber
  • computerid
  • diksid
  • byref

得分解答快速导航

  • 帖主:charles8513

相关链接

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

广告也精彩

反馈

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