急求解决:C#调用VC ATL COM组件的问题

colgao 2006-04-26 10:23:44
我用VC开发了一个组件,在VC,VB中测试都通过了,在C#中将一个接口指针赋给一个对象的属性,结果有个有一个提示指针为空。如下:
string str = "FeeStatInfo";
pStatInfo = new ETCCLOSEPATHLib.CFeeStatBaseInfoClass();
pStatInfo.IClosePathDataOpr = pClosePathDataOperate;
pStatInfo.DataSetVisitor = (ETCCLOSEPATHLib.SQLWrapper)pDataSetVisitor;
pStatInfo.Table = str;
str = "AttachRdID>0";
pStatInfo.strWhere = str;

string str1 = "[FlagSta_BaseDist]";
pNetWorker = new ETCCLOSEPATHLib.CClosePathDataHelperClass();
pNetWorker.IClosePathDataOpr = pClosePathDataOperate;
pNetWorker.DataSetVisitor = (ETCCLOSEPATHLib.SQLWrapper)pDataSetVisitor;
pNetWorker.Table = str1;
str1 = "VerNo>0";
pNetWorker.strWhere = str1;

pStatInfo和pNetWorker继承同一接口。
pStatInfo.IClosePathDataOpr = pClosePathDataOperate会成功,但pNetWorker不会成功,屏蔽pStatInfo也不会成功。检查pStatInfo和pNetWorker实现代码都一样。
...全文
194 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdl2005lyx 2007-02-05
  • 打赏
  • 举报
回复
lz: 你两个对象的赋值并不一样:
pStatInfo = new ETCCLOSEPATHLib.CFeeStatBaseInfoClass();
pNetWorker = new ETCCLOSEPATHLib.CClosePathDataHelperClass();

前面一个成功,并不能说明后一个也会成功,很可能是:
new ETCCLOSEPATHLib.CClosePathDataHelperClass();
出了问题,你有单步跟踪到com组件里面去,看看问题出在什么地方。

如何从net项目进入com组件代码,下面帖子:
http://community.csdn.net/Expert/topic/5318/5318697.xml?temp=.2077143
jxf654 2007-02-05
  • 打赏
  • 举报
回复
up
Jamestan 2007-02-04
  • 打赏
  • 举报
回复
pStatInfo = new ETCCLOSEPATHLib.CClosePathDataHelperClass();
pStatInfo.IClosePathDataOpr = pClosePathDataOperate;

这样也能成功吗?如果不行的话估计问题在CClosePathDataHelperClass定义对象的问题。
hertcloud 2007-02-04
  • 打赏
  • 举报
回复
你在 仔细 检查 你的
pNetWorker

单步 跟踪进去看看
vabug 2007-02-04
  • 打赏
  • 举报
回复
pClosePathDataOperate在哪里定义的?
colgao 2006-04-26
  • 打赏
  • 举报
回复
pStatInfo.IClosePathDataOpr = pClosePathDataOperate;
pStatInfo.IClosePathDataOpr = pClosePathDataOperate;
为什么第二次赴属性出错??
colgao 2006-04-26
  • 打赏
  • 举报
回复
哈哈,100分啊

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧