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条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 C#调用python代码(python带有库)
    • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
    • ¥15 活动选择题。最多可以参加几个项目?
    • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
    • ¥15 vs2019中数据导出问题
    • ¥20 云服务Linux系统TCP-MSS值修改?
    • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
    • ¥20 怎么在stm32门禁成品上增加查询记录功能
    • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
    • ¥50 NT4.0系统 STOP:0X0000007B