我的任务是恢复VB6项目,自从我使用VB6以来已经太久了。
这是我的问题。
项目A是一个ActiveX EXE项目。在同一个项目组中,还有另一个ActiveX EXE项目。项目B。项目B包含项目A需要使用的ChartMogul.Customer.all(config, {
status: 'Active',
per_page: 200,
page: page
}, function (err, res) {
if (err) reject(err);
console.log(res);
resolve(res.entries);
});
,例如:
{
"entries":[
{
"id": 25647,
"uuid": "cus_de305d54-75b4-431b-adb2-eb6b9e546012",
"external_id": "34916129",
"external_ids": ["34916129"],
"data_source_uuid": "ds_610b7a84-c50f-11e6-8aab-97d6db98913a",
"data_source_uuids": ["ds_610b7a84-c50f-11e6-8aab-97d6db98913a"],
"name": "Example Company",
"company": "",
"email": "bob@examplecompany.com",
"status": "Active",
"lead_created_at": "2015-01-01T10:00:00-04:00",
"free_trial_started_at": "2015-01-09T10:00:00-04:00",
"customer-since": "2015-06-09T13:16:00-04:00",
"city": "Nowhereville",
"state": "Alaska",
"country": "US",
"zip": "0185128",
"attributes":{
"tags": ["engage", "unit loss", "discountable"],
"stripe":{
"uid": 7,
"coupon": true
},
"clearbit":{
"company":{
"name": "Example Company",
"legalName": "Example Company Inc.",
"domain": "examplecompany.com",
"url": "http://examplecompany.com",
"category":{
"sector": "Information Technology",
"industryGroup": "Software and Services",
"industry": "Software",
"subIndustry": "Application Software"
},
"metrics":{
"raised": 1502450000,
"employees": 1000,
"googleRank": 7,
"alexaGlobalRank": 2319,
"marketCap": null
},
},
"person":{
"name":{
"fullName": "Bob Kramer"
},
"employment":{
"name": "Example Company"
}
}
},
"custom":{
"CAC": 213,
"utmCampaign": "social media 1",
"convertedAt": "2015-09-08 00:00:00",
"pro": false,
"salesRep": "Gabi"
}
},
"address":{
"address_zip": "0185128",
"city": "Nowhereville",
"country": "US",
"state": "Alaska"
},
"mrr": 3000,
"arr": 36000,
"billing-system-url": "https:\/\/dashboard.stripe.com\/customers\/cus_4Z2ZpyJFuQ0XMb",
"chartmogul-url": "https:\/\/app.chartmogul.com\/#customers\/25647-Example_Company",
"billing-system-type": "Stripe",
"currency": "USD",
"currency-sign": "$"
},
{"...49 more...": "...entries..."}
],
"has_more": true,
"per_page": 50,
"page": 1,
"current_page": 1,
"total_pages": 4
}
当我尝试将Project B的输出exe(而不是vbp)添加到Project A的引用中时,出现错误clsCommon (clsCommon.cls)
有人可以提醒我如何在EXE中引用类吗? (在输出为ActiveX DLL的项目组中的项目中引用类时,我没有遇到任何麻烦
顺便说一句:我认为这甚至是可能的,因为20年前的某些开发人员显然已经进行了这项工作。
答案 0 :(得分:5)
VB6不允许您从加载到同一IDE(项目组)的项目(ProjectA)中添加对ActiveX Exe(您的ProjectB)的引用。尝试时会显示错误。
这是因为ActiveX Exe是作为单独的进程运行的,我相信VB6 IDE不能对组中的单独项目进行处理。因此,虽然看起来您正在添加对ProjectB exe的引用,但由于它在组中,因此VB6实际上正在添加对ProjectB vbp的引用,这不受支持。
您需要从组中删除ProjectB。然后,您将可以从ProjectA IDE引用ProjectB Exe。
如果需要在IDE中运行ProjectB(用于调试或开发),请首先启动VB6并加载ProjectB。然后启动VB6的第二个实例并加载ProjectA。启动ProjectB时,您会注意到ProjectA中的引用从ProjectB Exe更改为ProjectB vbp(在第二个IDE中运行)。适当地在ProjectB中设置断点,然后在启动ProjectA并实例化ProjectB并进行方法调用时,将在该IDE中运行ProjectB代码。
答案 1 :(得分:3)
(注意-我已经修改了一部分)
对于组内的VB6项目,您应该能够使用通常的“引用”窗口(除EXE项目之外)向组中的其他项目添加相互引用。
我用一对测试EXE / DLL项目尝试了此操作,当我尝试在组中添加EXE引用时出现错误:
(由于项目类型为EXE,因此无法引用test1.vbp。)
但是,我可以引用DLL项目中没有问题的已编译EXE。这可能是您前进的最佳方式。
为了注册已编译的EXE,VB6会在您进行编译时为您执行此操作,但是我最终还记得有一个手动方法-您需要使用{{1 }}开关。
假设您的.VBP已经具有正确的条目(基本上是指向EXE和/或某些DLL和OCX文件的GUID的参考行),则应在执行以下操作时自动找到EXE中的类:您编译/运行。
其他一些SO问题在detali中对此进行了描述,因此我将不再重复所有这些事情:
等
如果您需要从DLL组中调试到EXE,请首先确保已连接所有引用。然后,您应该能够在IDE中运行EXE项目,设置断点,并在另一个IDE实例中分别运行DLL组并在它们之间进行调试。