我利用directshow实现了一个文件格式转换的模块,写成一个c++类Func,现在想把这个类封装到
一个dll中,但是调用directshow,实际上是调用com接口。
现想:
(1)彻底封装directshow相关com接口到自己的dll中,可行否?我是没有实现。
(2)只把类封装到dll中,实际上就是隐藏一下代码,并非真正的com。
写一个mfc应用程序,直接调用Func类,一切ok,当然要在CXXX:InitInstance()
中调用CoInitialize(NULL),以及释放工作。
如果把Func做到dll中,应用程序再去调用时,发现CoInitialize(NULL)不起作用,不论
把它放在应用程序中还是dll中,都不行,直接导致Func类中调用directshow中com接口时
失败。请大家给点建议。
一个dll中,但是调用directshow,实际上是调用com接口。
现想:
(1)彻底封装directshow相关com接口到自己的dll中,可行否?我是没有实现。
(2)只把类封装到dll中,实际上就是隐藏一下代码,并非真正的com。
写一个mfc应用程序,直接调用Func类,一切ok,当然要在CXXX:InitInstance()
中调用CoInitialize(NULL),以及释放工作。
如果把Func做到dll中,应用程序再去调用时,发现CoInitialize(NULL)不起作用,不论
把它放在应用程序中还是dll中,都不行,直接导致Func类中调用directshow中com接口时
失败。请大家给点建议。
解决方案 »
- 求编一个小程序
- rror C3867: 'P2PCLIENT::RecvThreadProc': function call missing argument list; use '&P2PCLIENT::RecvThreadProc' to create a point
- CView问题?????
- qq的udp打洞穿越防火墙??
- 下载下来的文件如何保持和源文件修改日期一致
- 可以定义一个从COM接口继承来的类吗?
- 高分呀 有关界面移动问题
- 鼠标 气泡的问题,..
- 急:关于对话框处理问题
- A*算法中的g和h 英文单词是什么?
- 有什么办法检查一个表示INT32整数的字符串表示的数据是否越界了呢?
- 请问什么是数据库长连接,短连接?
用ADO写数据库DLL时,在DLl中使用AfxOleInit();如果用VB6.0的exe调此DLL,则没有问题,
如果用MFC的exe调此DLL,则提示没有执行CoInitialize(NULL);在DLL中加上此代码就OK了。
还有一种方法是直接在MFC的exe中写AfxOleInit();在DLL中什么都不写,也可以调用成功。
因为AfxOleInit();在整个应用程序中只需执行一次,且不用卸载。
上面是我的经验,不知对不对。反正我这么做没有出错。
我使用的是Visual C++ .NET 2003 和Visual Basic 6.0
CoUnInitialize()都放到dll中