注册 登录
编程论坛 VB6论坛

VB6.0在编译declare语句时报错,无法通过

qfww 发布于 2014-03-08 20:26, 635 次点击
是这样的,我做了一个DLL文件,然后在exe工程里的(general)做declare,但编译时即不通过,报如下错误:
compile error:
     constants,fixed-length strings,arrays,user-defined types and declare statements not allowed as public members of object modules

查询帮助,其意思为:“常数、固定长度字符串、数组、自定义类型与 Declare 语句不能是对象模块中的 Public 成员”。

我没辙了,在网上找了些案例,新建一个空的exe的工程,拷入案例中的declare声明语句,所有源代码如下:

Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
  (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
  lParam As Any) As Long
  
Private Sub Command1_Click()
MsgBox ("nihao")
End Sub

就这样一个工程,编译时还是报相同错误,看样子是编译器的问题,我该怎么办?

[ 本帖最后由 qfww 于 2014-3-8 20:29 编辑 ]
2 回复
#2
qfww2014-03-08 20:46
百度了下,在declare前增加private即编译通过。但看了那么多资料,都是声明的public declare,这是什么状况
#3
qfww2014-03-08 22:27
新的进展,把declare声明前增加private,编译可以通过了,但运行exe时无法正常调用DLL,在网上一查,才发现VB制造的active DLL是不能通过declare调用的,晕死,这不白忙乎!

把declare去掉,然后在工程里面引用DLL,用类似于使用控件的方式,这个DLL可以正常使用了。

但如果不发表为标准DLL,就无法提供函数接口给其他程序调用,所以这段时间走好大弯路,还的研究如何使VB输出标准DLL才行
1