高手看过来!!!

zsl6658 2005-07-15 06:09:49
我自己写了一个dll,一切都正常,输出一个Add函数。但是下边的测试程序出错。
#include "stdafx.h"
#include <iostream>
#include <atlconv.h>

int main(int argc, char* argv[])
{
CoInitialize(NULL);
CLSID clsid;
IClassFactory *pCF;
HRESULT hr;
hr=CoGetClassObject(clsid,CLSTX_INPROC,IID_IClassFactory,(void**)&pCF);
if(FAILED(hr))
{
cout<<"函数调用失败!"<<endl;
return -1;
}
IUnknown* pUnk;
hr=pCF->CreateInstance(NULL,IID_IUnknown,(void**)*pUnk);
pCF->Release();
if(FAILED(hr))
{
cout<<"不能成功的创建对象!"<<endl;
return -1;
}
ISimpleMath* pISM=0;
pUnk->QueryInterface(IID_ISimpleMath,(LPVOID*)&pISM);
pUnk->Release();
long lRet;
pISM->Add(100,200,&lRet);
cout<<lRet<<endl;
CoUninitialize();
return 0;
}
错误列表如下:
Compiling...
testATL.cpp
d:\program files\microsoft visual studio\vc98\atl\include\atlconv.h(46) : error C2146: syntax error : missing ';' before identifier 'WINAPI'
d:\program files\microsoft visual studio\vc98\atl\include\atlconv.h(46) : error C2433: 'LPWSTR' : 'inline' not permitted on data declarations
d:\program files\microsoft visual studio\vc98\atl\include\atlconv.h(46) : error C2501: 'LPWSTR' : missing storage-class or type specifiers
d:\program files\microsoft visual studio\vc98\atl\include\atlconv.h(46) : fatal error C1004: unexpected end of file found
Error executing cl.exe.

testATL.exe - 4 error(s), 0 warning(s)
请教是什么问题?

如果还不够清楚,留下email,我把程序发过去!!!谢谢各位!!
...全文
109 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
nelsonc 2005-07-16
  • 打赏
  • 举报
回复
clsid没有赋值啊,CoGetClassObject不知道你要创建哪个COM对象。
qrlvls 2005-07-15
  • 打赏
  • 举报
回复
完整版,不过你那个 ISimpleMath 怎么定义的我可就不知道了

#include <iostream.h>
#include <unknwn.h>
#include <atlbase.h>
#include <atlconv.h>

int main(int argc, char* argv[])
{
CoInitialize(NULL);
CLSID clsid;
IClassFactory *pCF;
HRESULT hr;

hr = CoGetClassObject(clsid, CLSCTX_INPROC_SERVER, NULL, IID_IClassFactory,(void**)&pCF);

if(FAILED(hr))
{
cout<<"函数调用失败!"<<endl;
return -1;
}

IUnknown* pUnk;

hr=pCF->CreateInstance(NULL, IID_IUnknown, (void**)&pUnk);
pCF->Release();
if(FAILED(hr))
{
cout<<"不能成功的创建对象!"<<endl;
return -1;
}

ISimpleMath* pISM=0;
pUnk->QueryInterface(IID_ISimpleMath,(LPVOID*)&pISM);
pUnk->Release();
long lRet;
pISM->Add(100,200,&lRet);
cout<<lRet<<endl;
CoUninitialize();
return 0;
}
qrlvls 2005-07-15
  • 打赏
  • 举报
回复
#include <iostream.h>
#include <atlbase.h>
#include <atlconv.h>

int main(int argc, char* argv[])
{
CoInitialize(NULL);
CLSID clsid;
IClassFactory *pCF;
HRESULT hr;

hr = CoGetClassObject(clsid, CLSCTX_INPROC_SERVER, NULL, IID_IClassFactory,(void**)&pCF);

if(FAILED(hr))
{
cout<<"函数调用失败!"<<endl;
return -1;
}

IUnknown* pUnk;

qrlvls 2005-07-15
  • 打赏
  • 举报
回复
问题可还不少啊
#include <iostream>
#include <atlconv.h>
--》
#include <iostream>
#include <atlbase.h>
#include <atlconv.h>
zsl6658 2005-07-15
  • 打赏
  • 举报
回复
忘了,如果分少,各位尽管开口,我还有400多分,只要不超过我都可以考虑给!!!

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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