标题:VB6.0在编译declare语句时报错,无法通过
只看楼主
qfww
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-3-8
 问题点数:0 回复次数:2 
VB6.0在编译declare语句时报错,无法通过
是这样的,我做了一个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 编辑 ]
搜索更多相关主题的帖子: public 源代码 members general statements 
2014-03-08 20:26
qfww
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-3-8
得分:0 
百度了下,在declare前增加private即编译通过。但看了那么多资料,都是声明的public declare,这是什么状况
2014-03-08 20:46
qfww
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-3-8
得分:0 
新的进展,把declare声明前增加private,编译可以通过了,但运行exe时无法正常调用DLL,在网上一查,才发现VB制造的active DLL是不能通过declare调用的,晕死,这不白忙乎!

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

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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-428210-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.052932 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved