CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  ATL/ActiveX/COM

ATL 能不能继承VB编写的COM组件再封装成COM组件?

楼主kes2000(云之雾)2005-06-02 10:13:22 在 VC/MFC / ATL/ActiveX/COM 提问

事情的起因:  
      asp调用VB写的组件,asp页面需要根据已经有的word文件模板自动生成新的word文件再打印。生成和打印的速度比较慢,影响asp的使用。于是想开发一个新组件,具有后台开线程的方式解决。  
   
      用VC采用建立ATL组件的方式,从原来的COM组件中继承一个新类,在VC中开线程后再调用父类的方法。编译通过,执行过程中,感觉根本没有调用父类方法。  
   
      现在做了一个vb组件的demo,只有一个函数,用来生成文件,但是要输入文件名和内容。经测试能够产生文件。  
      然后在VC   ATL继承这个组件,重新构造一个函数封装上述vb函数,只是填写文件名和内容  
   
  BSTR   bstrValue1   =   ::SysAllocString(L"c:\\myFolder");    
  BSTR   bstrValue2   =   ::SysAllocString(L"Hello   World");    
  _VBTest::CreateFile(&bstrValue1,&bstrValue2);  
  //调用父类的方法  
   
  编译也通过了,但是没有文件产生。  
   
  ATL   能不能继承VB编写的COM组件再封装成COM组件吗??以上代码有问题么? 问题点数:50、回复次数:3Top

1 楼wangweixing2000(星(inspiration(灵感)))回复于 2005-06-02 11:00:52 得分 50

最好跟一下代码,看看_VBTest::CreateFile(&bstrValue1,&bstrValue2);的两个参数值没有没有传递过去,看看返回的错误码事什么?Top

2 楼kes2000(云之雾)回复于 2005-06-02 11:15:47 得分 0

请问老大怎么跟踪??我只会部署到系统Com服务中,然后用asp网页调用组件看看产生文件没有  
   
  我现在用VC不用继承的方式,而采用声明一个VB的COM组件的方式。  
   
  1.ATL工程是支持MFC  
  2.先用MFC   Classwizard导入VB的dll  
  3.导入后VB的dll的函数是  
  CString   _TestClass::WriteFile(BSTR*   fileName,   BSTR*   fileBody)  
   
  4.新建一个类,添加一个函数  
  VC的ATL的接口里面定义的函数是这样的  
  [id(2),   helpstring("method   WriteFile")]   HRESULT   WriteFile([in]BSTR   fileName,[in]BSTR   bodyName);  
   
  具体实现是这样的  
  STDMETHODIMP   CmyComponent::WriteFile(BSTR   fileName,   BSTR   bodyName)  
  {  
  AFX_MANAGE_STATE(AfxGetStaticModuleState())  
   
  //   TODO:   Add   your   implementation   code   here  
  _TestClass   test;  
  test.WriteFile(&fileName,&bodyName);  
  return   S_OK;  
  }  
   
  还是没有文件产生  
   
   
  另:  
  如果要把字符串"hello"转为BSTR   *   ,是不是  
  BSTR   bstrValue   =   ::SysAllocString(L"c:\\myFolder");    
  再   &bstrValue     就可以Top

3 楼kes2000(云之雾)回复于 2005-06-06 11:14:27 得分 0

失望Top

相关问题

  • vb类封装的问题
  • ATL组件封装问题(初学)
  • VB重新封装DLL的问题
  • 关于COM的重新封装!
  • VB调用ATL写的COM组件的问题
  • vb封装问题之后的运行问题?
  • 为什么用delphi封装的ocx在vb下不能用?
  • VB封装DLL文件时Set objRegExp=new RegExp这句怎么写
  • asp文件怎么用VB封装成DLL文件?
  • 能不能用 VB 封装 EXCEL 中的 VBA?

关键词

  • 组件
  • 函数
  • com
  • atl
  • 文件
  • vb
  • vc
  • asp
  • bstrvalue
  • 封装

得分解答快速导航

  • 帖主:kes2000
  • wangweixing2000

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo