有哪位大哥对SDK开发包熟悉的啊,COM的SDK开发包,现在我们N多人在赶一个项目,需要用到NETMEETING SDK,NETMEETING是COM组件,在解决了能使用其它COM组件后,竟然发现用使用NETMEETING不知道该包含哪个头文件,如果没有头文件,所有对象都不能声明,所有参数都不能使用,那还用什么NETMEETING啊,求各位大哥救急,能不能帮找找这个头文件啊,所有家底就140分了,愿意全部奉送啊,只求能解决这个问题,到底怎么才能使用NETMEETING组件啊~
解决方案 »
- CButtonST类使用问题
- 小问题,很郁闷
- bitcomit怎么实现用一个端口即tcp监听又,udp接收数据的
- 请问如何搜索文件夹下的文件包括子文件夹
- 我想使用SendMessage/PostMessage给另一个进程发送一个Struct过去,怎么做?
- 自己写的游戏,请大家给点意见,谢谢!
- 电驴协议中 客户-服务器连接疑惑
- 如何按照字符宽度设置CEdit长度
- 三顾茅庐(.DLL问题悬而未决)
- 关于OpenGL中图形旋转。
- 在VC中看到: cs.style &= ~FWS_PREFIXTITLE, 这是什么意思啊,我是说&=什么意思,在FWS_PREFIXTITLE前为什么加一个~
- 请问如何方便地计算距离现在200天前的日期?
一、首先要用#import把dll导入进来
#import "C:\WINDOWS\System32\olepro32.dll" //这个dll是ROI32.dll要用到的,所以要在ROI32.dll前import
#import "ROI32.dll" exclude("Folder") no_namespace //Folder与其他对象库冲突要注意的两种错误:
1、是可能会和其他库冲突,可以用exclude("name1","name2")属性来避免错误,
2、有的dll可能还需要其他库,你可以查看编译后生成的tlh文件开始部分,里面会有提示,这时要把里面提到的库在我们使用的dll前import 进来。二、使用时可以通过OLE/COM Object Viewer来查找接口或者在编译生成的tlh文件中查找
也可以使用时打开OLE/COM Object Viewer->Type Libraries->选择对应dll的library,然后双击可以打开ITypeLib Viewer,这里可以看到该lib有很多项,Enums表示定义的枚举常量,Structs表示定义的结构,Interface表示定义的接口,CoClasses表示库中总共含有的class对象,如Activity。每个class对象又含有多个接口,如Activity中含有的接口就有IROActivity。三、下面就是使用Activity对象中的IROActivity接口
IROActivity* oLog = NULL;
HRESULT hr = CoCreateInstance( __uuidof(Activity),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(IROActivity),
(void**) &oLog
);
//下面就可以使用IROActivity接口了
oLog->Log((_bstr_t)bstrMsg, (long)roActivityInfo, (long)roActivityApplication,
lMsgID, m_sVoiceAgentName);
IROActivity* oLog = NULL;
要是头文件都没有,一声明这个就出错啦
我把SDK里的头文件全都试了一遍啦,都没有
没头文件你就不能生成一个吗?
import那个动态库,会生成tlh和tlb文件来使用;
还可以在OLE/View中打开那个Com动态库,另存.h .c .idl文件
http://community.csdn.net/Expert/topic/3272/3272945.xml?temp=.4167292
的回复,我没有用DLL,但是你给那段代码太珍贵了,__uuidof是和所有书上了例子不同的地方,我现在已经能正常声名NM所有的对象和接口了,但是还有一个地方会出莫名的问题,还想麻烦你一下了,指点我一下这个该怎么办,真是太谢谢你了HRESULT hr = CoCreateInstance( __uuidof(Activity),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(IROActivity),
(void**) &oLog
);hr = CoCreateInstance(CLSID_NmManager, NULL, CLSCTX_INPROC_SERVER, IID_INmManager, (void**)&g_pINmManager); 问题就是,程序的编译连接都没错误,但是所有我用以上方法获得的接口都无法成功,都不能返回成功的句柄,hr的值总是0x800401F0,这个问题会是出在什么地方呢?
0x800401F0:尚未调用 CoInitialize
后来仔细研究了别人的程序,发现包含的头文件是一个.h文件和一个_i.c文件,又仔细观察了NETMEETING的一个imsconf2.idl文件,发现几乎所有东西都在里边声明了,然后我就用midl将这个idl文件变成了h和c文件,生成了三个文件。 然后我包含其中的.h和_i.c文件,变量和参数真的都能识别了,但是,新的问题又来了,编译都最后剩了三个错误,连接错误,怎么也解决不了了,求各位大哥指点啊~~!, 这是救命的程序啊,我家底就剩40分了,但是还有个帖子,送人分的,那位大哥坚决不要,我在这里就给大家吧,去http://community.csdn.net/Expert/topic/3267/3267336.xml?temp=.3171808拿分就行 这就是剩下那三个最要命的错误了,求大哥们指点啊~!
testha.obj : error LNK2005: _CLSID_NmManager already defined in StdAfx.obj testha.obj : error LNK2005: _IID_INmManager already defined in StdAfx.obj
Debug/testha.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe. 试了包含其它生成的文件了,明显一看就是不对,里边连各种声明都没有
小鱼子兄弟!十分感谢你在
http://community.csdn.net/Expert/topic/3272/3272945.xml?temp=.4167292
的回复,我没有用DLL,但是你给那段代码太珍贵了,__uuidof是和所有书上了例子不同的地方,我现在已经能正常声名NM所有的对象和接口了,但是还有一个地方会出莫名的问题,还想麻烦你一下了,指点我一下这个该怎么办,真是太谢谢你了HRESULT hr = CoCreateInstance( __uuidof(Activity),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(IROActivity),
(void**) &oLog
);hr = CoCreateInstance(CLSID_NmManager, NULL, CLSCTX_INPROC_SERVER, IID_INmManager, (void**)&g_pINmManager); 问题就是,程序的编译连接都没错误,但是所有我用以上方法获得的接口都无法成功,都不能返回成功的句柄,hr的值总是0x800401F0,这个问题会是出在什么地方呢?
CLSID_NmManager和IID_INmManager一定要对应TLH文件中的相应项