CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

DLL

楼主xds2000(小蹦豆)2000-06-26 23:08:00 在 VC/MFC / 基础类 提问

  你好!  
  >         请问如何用Visual   C++   6.0编动态连接库,使VB也可以调用,我选了MFC   APP   Wizard(DLL)   à   Regular     DLL   using     share     MFC     DLL这个选项创建的DLL可以被C++的程序正常调用,但是用VB调用则总是显示调用约定错误(49),DLL在VB模块中的类型声明是按照被调用DLL的原形来声明的,VB的Integer对应C++   的int,   但就是每次都显示DLL调用约定错误。请问这是什么原因?我百思不得其解,谢谢赐教!  
  >  
  >代码如下  
  >  
  >extern   "C"   __declspec(dllexport)   int   SCommMsg(CString   str1)  
  >  
  >{  
  >  
  >         AFX_MANAGE_STATE(AfxGetStaticModuleState());  
  >  
  >                    
  >  
  >                   AfxMessageBox(str1);  
  >  
  >    
  >  
  >         return   1;  
  >  
  >}  
    please   send   answer   to   this   :xds7788@sina.com   问题点数:20、回复次数:4Top

1 楼wjf(ww)回复于 2000-06-27 08:31:00 得分 10

请如下声明:  
  extern   "C"   __declspec(dllexport)   __stdcall   int   SCommMsg(CString   str1)  
  __stdcall   是标准调用约定,这涉及到由谁清栈。另外CString没法作参数,你想VB里怎么表示他?用LPCTSTR吧;  
  Top

2 楼halfdream(哈欠)回复于 2000-06-27 09:41:00 得分 0

用BSTR   作为参数,即对应VB中的字符串。Top

3 楼Kenny()回复于 2000-06-27 10:54:00 得分 0

halfdream说得对!CString是VB中没有的类型,是个类;而VB中只有string类型,它在VC中相当于char*   即BSTR或LPSTR类型。当然,如果不改变字中值,用LPCTSTR也可以。Top

4 楼Un1()回复于 2000-06-27 11:49:00 得分 10

这个申明以不变应万变:  
   
  VC:  
   
  long   __stdcall   FunctionName(DWORD   longData,   VOID   *ptrData)  
   
  VB:  
  Public   Declare   Function   FunctionName   Lib   "yourdll"   (ByVal   longData   as   Long,   ptrData   As   Any)   As   Long  
  Top

相关问题

  • DLL?
  • dll
  • DLL
  • *.dll
  • dll?
  • (.dll)
  • dll is 》》》----------------------------------------->
  • DLL
  • dll
  • dll..dll..dll..dll..dll...的话题。。。

关键词

  • c++
  • vb
  • dll
  • 调用
  • 约定
  • 类型
  • stdcall
  • cstring
  • str1
  • 声明

得分解答快速导航

  • 帖主:xds2000
  • wjf
  • Un1

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

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