qs1005650933 2013-11-09 12:20
浏览 1081

简单的com组件调用,用类厂的方式,调试到ix->ifun()内存报错。。

#include
#include "ComExp1.h"
#include "ComExp1_i.c"

int main(int argc, char* argv[])
{
IUnknown *pUnk=NULL;
ICompute *pObject;
//ICompute * pICompute; //定义一个ICompute 的接口指针;
HRESULT hResult;

//初始化COM库
if (CoInitialize(NULL) != S_OK) 
{
    printf("Initialize COM library failed!\n");
    return -1;
}

GUID comExp1CLSID; //定义一个GUID对象--clsID

//  通过调用::CLSIDFromProgID将GUID转换成CLSID;
hResult=::CLSIDFromProgID(L"ComExp1.Compute",&comExp1CLSID);
if(hResult != S_OK)
{
    printf("Can't find the ComExp1 CLSID!\n");
    return -2;
}

// IClassFactory classFactory;
hResult = CoGetClassObject(comExp1CLSID,CLSCTX_INPROC_SERVER,NULL,
IID_IUnknown,(void *
)&pUnk);
if(FALSE(hResult))
{
printf("error!\n");
}
pUnk->QueryInterface(IID_ICompute,(void**)&pObject);
pUnk->Release();
long k;
long *l=&k;
printf("ok!\n");
pObject->Add(6,2,l);//调试到这里内存报错。。编译是没错的
printf("6 + 2 = %ld\n",*l);
printf("Compute over...\n");
pObject->Release();
CoUninitialize();//释放COM库
return 0;

}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 java-OJ-健康体检
    • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
    • ¥15 使用phpstudy在云服务器上搭建个人网站
    • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
    • ¥15 vue3+express部署到nginx
    • ¥20 搭建pt1000三线制高精度测温电路
    • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
    • ¥15 画两个图 python或R
    • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
    • ¥15 八路抢答器设计出现故障