本例使用的是windows控制台类型,仅作演示:
/**********************************************************************************************
*abtbase.h定义了CW2A 用以将UNICODE字符转化为ANSI字符
*注意初始化COM的技巧
*QUERYINTERFACE要手动维护引用计数
***************************************************************************************************/
// ATLClient.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "atlbase.h"
#import "..\\ATLServer\\_ATLServer.tlb" no_namespace
struct _INIT_COM
{
_INIT_COM()
{
CoInitialize(NULL);
}
~_INIT_COM()
{
CoUninitialize();
}
}_G_INIT_COM;
int _tmain(int argc, _TCHAR* argv[])
{
IServerPtr ser;
ser.CreateInstance(__uuidof(CServer));
_bstr_t ret;
_bstr_t para("张秀程");
ret=ser->GetGetAString(para);
CW2A pszA(ret);
printf("Result is %s\n",pszA);
printf("........................\n");
IServer *pSer;
ser.QueryInterface(__uuidof(IServer),(void **)&pSer);
para=L"张秀程";
ret=pSer->GetGetAString(para);
pSer->Release();
printf("Result is %s",CW2A(ret));
return 0;
}