|
|
在activex控件工程中使用directshow,编译时link错误的解决方法 |
|
|
作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站 |
错误为: strmbase.lib(dllentry.obj) : error LNK2001: unresolved external symbol "class CFactoryTemplate * g_Templates" (?g_Templates@@3PAVCFactoryTemplate@@A) strmbase.lib(dllentry.obj) : error LNK2001: unresolved external symbol "int g_cTemplates" (<A href="mailto:?g_cTemplates@@3HA">?g_cTemplates@@3HA</A>)
原因好像出在标准C上,与用户代码无关。
----------------------------解决方案-------------------------------------- 打开XXX_XXCtl.h头文件,在程序开头的这些代码 #if !defined(AFX_OCX_MICPHONECTL_H__3388C6A4_9DE5_4D2F_9021_920EF2BF5CAB__INCLUDED_) #define AFX_OCX_MICPHONECTL_H__3388C6A4_9DE5_4D2F_9021_920EF2BF5CAB__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 的下面加上以下代码即可。 ///////////////////////////////////////////////////////////////////////////// // DllGetClassObject extern "C" STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv) { AFX_MANAGE_STATE(AfxGetStaticModuleState()); return AfxDllGetClassObject(rclsid, riid, ppv); } ///////////////////////////////////////////////////////////////////////////// // DllCanUnloadNow extern "C" STDAPI DllCanUnloadNow(void) { AFX_MANAGE_STATE(AfxGetStaticModuleState()); return AfxDllCanUnloadNow(); } ////////////////////////////////////////////////////////////////////////////
重新编译即可!
|
|
相关文章:相关软件: |
|