VB中怎样调用C写的DLL?

program2100 2003-09-11 01:33:38
DLL中声明如下:
funA(const char*,const char*,int,char*)
在VB中调用方式如下:
Private Declare sub funB Lib "X.dll" Alias "funA"(ByRef,ByRef,ByVal,ByRef)为什么Win2000下提示:The instruction at "0x0fbaa37c" referenced memory at "0xdb38ffe9".The memory could not be "read".
好像是内存不能读
...全文
42 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dddd8888 2003-09-12
  • 打赏
  • 举报
回复
在调用上?
program2100 2003-09-11
  • 打赏
  • 举报
回复
我已经解决了,问题不在DLL上,结帖啦
astroboy 2003-09-11
  • 打赏
  • 举报
回复
问题还是在你的dll上,好像你上面写的参数都不一致!

吸取前辈的经验,自己了个VB6.0 DLL文件的编译链接插件,按照以下方法,可以在VB 6.0直接编译生成带外部输出的DLL文件。   1. 把MakeDLL.dll和MakeDLL.exe两个文件复制入VB所在目录,例如   "C:\Program Files\Microsoft Visual Studio\VB98"   2. 把Module1DLL.bas和Standard DLL.vbp两个文件复制入VB所在目录下的   Template目录下的Projects目录,例如   "C:\Program Files\Microsoft Visual Studio\VB98\Template\Projects"   3. 启动VB 6.0,随便选择建立一种什么类型的程序,然后主菜单选择"外接程序"   再选择"外接程序管理器",你应该可以看到在列表有"Create DLLs in VB 6.0,然后选择它,并在窗口右下方的"加载行为"把"在启动加载"和"加载/卸载"都钩选,点确定,再次关闭VB 6.0   4. 再次启动VB,建立一个ActiveX DLL程序,这个时候点主菜单"文件",可以看到"生成工程1.DLL(K)"和"选择DLL出口函数"菜单项目。   好了,大功告成,现在你的VB 6.0已经可以直接编译链接标准的DLL文件了,造作方法,如下:   建立ActiveX dll程序,添加一个模块(DLL的函数只能在模块才有效),在模块你的DLL function过程函数,编完毕,点保存,然后点"文件"菜单下的”选择DLL出口函数",在弹出窗口选择需要申明为可以外部调用的   function,然后确定,最后点"文件"->"生成xxx.dll(K)",编译生成DLL。   需要注意的地方如下:   1. 程序代码必须在模块   2. 需要申明为外部调用的函数必须为Public   3. DLL代码必须包含一个function DLLmain函数和一个sub Main,不过function DLLmain会被执行,而sub main只是摆设,其的代码不会运行,但是必须有这个东西(◎_◎)。   4. DLL代码编没有什么特殊的要求,可以做一切可以在VB用的东西,比如调用API啊,编嵌入代码啊(关键)……

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧