求助!编译错误,找不到错误源

natfit 2011-07-08 10:33:35
我有一个类,原来都是对的,后来用ado来做数据层,结果出错,但错误在comip.h中出现,找不到原始的错误源,

error C2227: “->QueryInterface”的左边必须指向类/结构/联合/泛型类型 d:\program files\vs2010\vc\include\comip.h 810

template<typename _InterfacePtr> HRESULT _QueryInterface(_InterfacePtr p) throw()
{
HRESULT hr;

// Can't QI NULL
//
if (p != NULL) {
// Query for this interface
//
Interface* pInterface;
hr = p->QueryInterface(GetIID(), reinterpret_cast<void**>(&pInterface));   //错误在这一句

// Save the interface without AddRef()ing.
//
Attach(SUCCEEDED(hr)? pInterface: NULL);
}
else {
operator=(static_cast<Interface*>(NULL));
hr = E_NOINTERFACE;
}

return hr;
}


我现在把数据处理都屏蔽了,还是不对。

我这个类include了其他几个类,他们编译都是成功的,只有它编译失败,那这个错误是不是一定是这个类出现的呢?还是也有可能是其他类引起的?

此外,其他的几个类里,也有连接到数据处理层的,会不会还是出错,但我现在把数据层代码都移除了,只有文件头了啊!

各位大侠帮助啊,卡了两天了!
...全文
70 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ytht8484 2011-07-08
  • 打赏
  • 举报
回复
学习了,,,,
hahayezhe112 2011-07-08
  • 打赏
  • 举报
回复
(_InterfacePtr p 这是什么?
(_InterfacePtr 包含QueryInterface的方法了么?
ouyh12345 2011-07-08
  • 打赏
  • 举报
回复
有没有
#import "C:\Program Files\Common Files\System\ADO\msado15.dll" \
no_namespace rename("EOF", "EndOfFile")
这样的语句?
natfit 2011-07-08
  • 打赏
  • 举报
回复
找到原因了,
_RecordsetPtr esou=(_RecordsetPtr )tw.sAddr;

val=esou->Fields->Item[tw.para->GetAt(0).AllocSysString()]->GetValue().bstrVal;

不能用,只能用
_RecordsetPtr esou=(_RecordsetPtr *)tw.sAddr;

val=(*esou)->Fields->Item[tw.para->GetAt(0).AllocSysString()]->GetValue().bstrVal;

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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