描述:
服务端:通过ATL构建的exe程序
只有一个接口
// ATL_HELLO.cpp : Implementation of CATL_HELLO
#include "stdafx.h"
#include "A.h"
#include "ATL_HELLO.h"
/////////////////////////////////////////////////////////////////////////////
// CATL_HELLO
STDMETHODIMP CATL_HELLO::Hello()
{
// TODO: Add your implementation code here
MessageBox(NULL, "HELLO EXE COM", NULL, IDOK);
return S_OK;
}
客户端:
#include <iostream>
#include "A.h"
//这段是拷贝A_i.c中间的
const IID IID_IATL_HELLO = {0x7CC5622B,0x5374,0x4BBA,{0x81,0x67,0x9D,0x4B,0x21,0x32,0x4A,0xD8}};
const IID LIBID_ALib = {0xE22F6F1B,0x3C81,0x4C8B,{0x95,0xD2,0x5C,0xA0,0x0E,0xA5,0x34,0x83}};
const CLSID CLSID_ATL_HELLO = {0xA3C70FAA,0xA507,0x4C85,{0x93,0x39,0x56,0xF2,0x60,0xC7,0xBF,0x38}};
void main()
{
// TODO: Add your control notification handler code here
HRESULT hr;
IATL_HELLO *pI = NULL;
// Now we will intilize COM
hr = CoInitialize(0);
if(SUCCEEDED(hr))
{
hr = CoCreateInstance( CLSID_ATL_HELLO, NULL, CLSCTX_LOCAL_SERVER, IID_IATL_HELLO, (void**) &pI);
if(SUCCEEDED(hr))
{
pI->Hello();
pI->Release();
}
else
{
std::cout << "CoCreateInstance Failed." <<std::endl;
}
}
// Uninitialize COM
CoUninitialize();
}
hr的返回值是--2147467262好像也看不出什么。
解决方案1:
没有找到指定的接口。
你有没有将这个接口正确地导出?
如果是用ATL向导做的,应该不会有这个问题的呀