【转】strmbasd.lib(dllentry.obj) : error LNK2001: 无法解析的外部符号"int g_cTemplates"

加入了DirectShow的基类链接库后,如果此时编译就会出现以下编译错误:

strmbasd.lib(wxutil.obj) : error LNK2019: 无法解析的外部符号 [email protected]

strmbasd.lib(wxutil.obj) : error LNK2019: 无法解析的外部符号 [email protected]

strmbasd.lib(dllentry.obj) : error LNK2001: 无法解析的外部符号 "class CFactoryTemplate *

g_Templates" ([email protected]@[email protected]@A)
strmbasd.lib(dllentry.obj) : error LNK2001: 无法解析的外部符号 "int g_cTemplates"

([email protected]@3HA)

解决的办法是:

1、在附加依赖项中再加入winmm.lib链接库文件,这样将不会再出现error LNK2019的编译错误。

2、在项目的TestOcxCtrl.h头文件的后面添加如下的代码将消除error LNK2001的编译错误:

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();
}

原文地址:https://www.cnblogs.com/nightnine/p/9253241.html

时间: 2024-10-10 21:52:49

【转】strmbasd.lib(dllentry.obj) : error LNK2001: 无法解析的外部符号"int g_cTemplates"的相关文章

vs2015编译ffmpeg 出现错误rtmp.lib(rtmp.obj) : error LNK2001: 无法解析的外部符号 ___iob_func

vs2015编译ffmpeg(版本3.0.2)引用外部库文件librtmp出现以下错误: rtmp.lib(rtmp.obj) : error LNK2001: 无法解析的外部符号 __imp__strtod rtmp.lib(rtmp.obj) : error LNK2001: 无法解析的外部符号 __imp__sscanf rtmp.lib(rtmp.obj) : error LNK2001: 无法解析的外部符号 __imp___snprintf rtmp.lib(rtmp.obj) : e

VS2015+OpenGL4.0开发编译时弹出错误:glaux.lib(tk.obj) : error LNK2019: 无法解析的外部符号 _sscanf,该符号在函数 [email protected] 中被引用

一.问题描述: VS2015+OpenGL4.0开发编译时弹出如下所示的错误: 1>glaux.lib(tk.obj) : error LNK2019: 无法解析的外部符号 _sscanf,该符号在函数 [email protected] 中被引用 1>glaux.lib(tk.obj) : error LNK2019: 无法解析的外部符号 _vsprintf,该符号在函数 _PrintMessage 中被引用 二.问题原因: VS2015默认编译时将许多标准库采用内联方式处理,因而没有可以链

qtmaind.lib(qtmain_win.obj) : error LNK2019: 无法解析的外部符号 __imp_CommandLineToArgvW,该符号在函数 WinMain 中被引用

报错:qtmaind.lib(qtmain_win.obj) : error LNK2019: 无法解析的外部符号 __imp_CommandLineToArgvW,该符号在函数 WinMain 中被引用 原因: 未包含Shell32.lib 解决1: #pragma comment(lib, "Shell32.lib") 解决2: 属性管理器:链接器->输入->附加依赖项->Shell32.lib (在常规中添加好对应附加库目录) 参考:https://blog.c

MSVCRTD.lib(crtexe.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStart

vs2012 这个错误的解决方法: 项目/属性/连接器/系统/子系统 把控制台 (/SUBSYSTEM:CONSOLE)改为 窗口 (/SUBSYSTEM:WINDOWS) 顺便说一下我的主函数是 int WINAPI WinMain(HINSTANCE hInst,HINSTANCE,LPSTR cline,INT)

ACE_TEST1.obj : error LNK2019: 无法解析的外部符号

ACE_TEST1.obj : error LNK2019: 无法解析的外部符号 "int __cdecl ace_main_i(int,char * * const)" ([email protected]@[email protected]) ,该符号在函数 "private: virtual int __thiscall ACE_Main::run_i(int,char * * const)" ([email protected][email protecte

vs2010+qt4编译出现error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject等错误

1.当vs2010编译qt时会出现以下错误: 1>------ 已启动全部重新生成: 项目: MyDialog, 配置: Debug Win32 ------ 1>生成启动时间为 2015/9/9 14:57:04. 1>InitializeBuildStatus: 1>  正在创建"Debug\MyDialog.unsuccessfulbuild",因为已指定"AlwaysCreate". 1>CustomBuild: 1> 

LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main

在创建MFC项目时,如果没有设置好项目参数, 就会在编译时产生很多连接错误, 如我今天遇到的: LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main 解决方法: 控制台项目要使用windows子系统, 而不是console, 设置:[Project] --> [Settings] --> 选择"Link"属性页,在Project Options中将/subsystem:console改成/

C++工程编译之“error LNK2001: 无法解析的外部符号”

今天一整天都在折腾“error LNK2001: 无法解析的外部符号”,就在头疼不已的时候,总算是找到问题原因了:各个动态链接库的编译方式必须统一才行,要不然很容易对库函数的引用产生冲突.简单来说就是,如果使用的第三方函数库编译方式采用/MD,那么主工程也应该使用/MD.我使用了libevent,而主工程默认采用/MT,所以需要忽略一大堆的函数库,我还纳闷呢,怎么会这么奇怪!!今天总算是解决了长久以来的困惑了. 下面引用一篇文章的描述:[Z]VC运行库版本不同导致链接.LIB静态库时发生重复定义

c++中调用python脚本提示 error LNK2001: 无法解析的外部符号 __imp_Py_Initialize等错误的解决方法

最近项目中需要实现一个服务器宕机后短信提醒的功能,个人觉得在使用Python 写http请求这块很方便,发短信这块就使用了python,但是c++程序中调用这个脚本时,编译不通过,提示如下错误: error LNK2001: 无法解析的外部符号 __imp_PyString_FromStringerror LNK2001: 无法解析的外部符号 __imp_PyCallable_Check error LNK2001: 无法解析的外部符号 __imp_PyObject_CallObjecterro