(VC6.0下编译的控件的属性与方法)能否在C++ Builder 6调用,或者说如何封装实现
我在VC 6下面做了一个产品的控件,并且能很好的使用,我想将它移值到C++ Builder6中,不是简单的将源码复制过来重新编译
我能不能在C++ Builder 6下直接做一个控件将VC下的控件包好,从而能调用它的属性与方法
问题点数:0、回复次数:14Top
1 楼lanren_me(阿波)回复于 2003-06-04 12:36:32 得分 0
建成active或dllTop
2 楼yingyys(鹰)回复于 2003-06-04 12:40:48 得分 0
做成activex控件吧Top
3 楼gjgj3368(冷面修罗)回复于 2003-06-04 12:57:00 得分 0
对,做成activex控件Top
4 楼ThinkX(秋天的树)回复于 2003-06-04 13:25:33 得分 0
做成activex控件,在import时,bcb会为你自动生成封装代码。
如果用到了mfc,在bcb和vc之间的源代码几乎是不可移植的。Top
5 楼1981lhb(小波)回复于 2003-06-04 13:46:27 得分 0
做成ActiveX控件,具体步骤如何,可否详细一点,谢谢!
可不可以在C++ Builder中做一个控件,将原来的控件(VC下开发)包进来,从而可以直接调用它的属性与方法.Top
6 楼1981lhb(小波)回复于 2003-06-04 14:32:18 得分 0
或许是我说的不够清楚,是这样的:我在VC 6下做了一个产品控件,
而我要在C++ Builder下用到这个控件,只有控件没有源码,我该如何调用该控件的属性和方法,请各位高手指教!Top
7 楼1981lhb(小波)回复于 2003-06-05 12:21:30 得分 0
我已做成ActiveX控件,但是编译的时有如下三处错误
下面我给出错误的地方:
STDMETHODIMP TActCardDevXImpl::get_OleObject(VARIANT* Value)
{
try
{
*Value = (TVariant)(m_VclCtl->OleObject);(2)
}
catch(Exception &e)
{
return Error(e.Message.c_str(), IID_IActCardDevX);
}
return S_OK;
};
......
STDMETHODIMP TActCardDevXImpl::GetPropDisplayString(long DispID,
BSTR* Value)
{
try
{
*Value = m_VclCtl->GetPropDisplayString(DispID);(2)
}
catch(Exception &e)
{
return Error(e.Message.c_str(), IID_IActCardDevX);
}
return S_OK;
};
.......
STDMETHODIMP TActCardDevXImpl::SetPropDisplayString(long DispID,
BSTR Value)
{
try
{
m_VclCtl->SetPropDisplayString(DispID, Value);
}
catch(Exception &e)
{
return Error(e.Message.c_str(), IID_IActCardDevX);(3)
}
return S_OK;
};
[C++ Error] ActCardDevImpl1.cpp(200): E2015 Ambiguity between '_fastcall Variant::operator TVariant()' and 'TVariant::TVariantT(const Variant &)'
[C++ Error] ActCardDevImpl1.cpp(328): E2034 Cannot convert 'AnsiString' to 'wchar_t *'
[C++ Error] ActCardDevImpl1.cpp(609): E2451 Undefined symbol 'e'
请各位高手指教,到时一定给分,急急急!!!!Top
8 楼SeekTruth(鹤舞白沙)回复于 2003-06-06 21:43:15 得分 0
关注。
我也碰到这个问题,开始以为是用了MFC,后来全部用ATL还是报一大堆错。
Top
9 楼Lewolf(无名)回复于 2003-06-06 22:17:05 得分 0
错误信息已经非常明确了,这些都是基本的技能,象什么AnsiString和WideString的转换、命名空间的混淆等的,我懒得详细解释了。
Top
10 楼Behard(我爱天安门)回复于 2003-06-12 20:37:23 得分 0
学习
-----------------------------------
什么时候有时间、有朋友一起去踢球呢?
Top
11 楼888888888888(888888888888)回复于 2003-06-13 12:39:33 得分 0
关注Top
12 楼1981lhb(小波)回复于 2003-06-13 15:00:17 得分 0
谢谢各位的指教,不过我还是没有搞定,可能是基础太差,问一个简单的,通过继承VC中的控件,在C++ Builder 6中添加一个方法,如何实现,我在filename.cpp加入实现代码,在.h加入了一个声明,结果调用的时候找不到该方法,请问如何在控件程序中添加一个新的方法,不是通过filename.tlb添加...获得答案后将结贴.Top
13 楼1981lhb(小波)回复于 2003-06-20 11:37:15 得分 0
请 Lewolf(李狼) 兄提供更详细的帮助!谢谢Top
14 楼1981lhb(小波)回复于 2003-07-23 10:39:32 得分 0
期待大家的帮助!Top



