以下为自测过程中一些问题记录。
error C2220: 警告被视为错误 - 没有生成“object”文件
解决:文件编码问题,可以双击错误处,VS窗口会显示到此文件没有保存(源文件用记事本打开显示ANSI类型,而工程中需要unicode),点击VS窗口上的全部保存。
How do I build Notepad++ with Visual C++ 2010 Express? - Stack Overflow
1>C:\Program Files\Microsoft Visual Studio 10.0\VC\include\string(676): error C2039:
1>C:\Program Files\Microsoft Visual Studio 10.0\VC\include\string(676): error C3861:
View + Property Manager
Open one of the nodes and locate "no ms shit"
Right-click it, Properties
C/C++, Preprocessor, Preprocessor Definitions
Change __STDC_WANT_SECURELIB__=0
to 1
Add _CRT_SECURE_NO_WARNINGS to those definitions
==============================
使用最新的notepad-plus-plus-8.4.4编译,使用VS2019(VS2015以上)打开工程notepad-plus-plus-8.4.4\PowerEditor\visual.net\notepadPlus.sln
可以看到有三个工程,工程Lexilla编译的问题,将错误提示附近的“特殊字符注释”都删除即可(我将特殊的都删除掉了)
1>已完成库搜索
1>NppDarkMode.obj : error LNK2019: 无法解析的外部符号 imp__DrawThemeTextEx@36,该符号在函数 "bool cdecl NppDarkMode::runUAHWndProc(struct HWND *,unsigned int,unsigned int,long,long *)" (?runUAHWndProc@NppDarkMode@@YA_NPAUHWND@@IIJPAJ@Z) 中被引用
1>NppDarkMode.obj : error LNK2019: 无法解析的外部符号 imp__BufferedPaintStopAllAnimations@4,该符号在函数 "long stdcall NppDarkMode::ButtonSubclass(struct HWND *,unsigned int,unsigned int,long,unsigned int,unsigned long)" (?ButtonSubclass@NppDarkMode@@YGJPAUHWND@@IIJIK@Z) 中被引用
1>NppDarkMode.obj : error LNK2019: 无法解析的外部符号 imp__BeginBufferedAnimation@32,该符号在函数 "void cdecl NppDarkMode::paintButton(struct HWND *,struct HDC *,struct NppDarkMode::ButtonData &)" (?paintButton@NppDarkMode@@YAXPAUHWND__@@PAUHDC__@@AAUButtonData@1@@Z) 中被引用
1>NppDarkMode.obj : error LNK2019: 无法解析的外部符号 imp__EndBufferedAnimation@8,该符号在函数 "void cdecl NppDarkMode::paintButton(struct HWND *,struct HDC *,struct NppDarkMode::ButtonData &)" (?paintButton@NppDarkMode@@YAXPAUHWND__@@PAUHDC__@@AAUButtonData@1@@Z) 中被引用
1>NppDarkMode.obj : error LNK2019: 无法解析的外部符号 imp__BufferedPaintRenderAnimation@8,该符号在函数 "void cdecl NppDarkMode::paintButton(struct HWND *,struct HDC *,struct NppDarkMode::ButtonData &)" (?paintButton@NppDarkMode@@YAXPAUHWND__@@PAUHDC__@@AAUButtonData@1@@Z) 中被引用
1>NppDarkMode.obj : error LNK2019: 无法解析的外部符号 imp__GetThemeTransitionDuration@24,该符号在函数 "void cdecl NppDarkMode::paintButton(struct HWND *,struct HDC *,struct NppDarkMode::ButtonData &)" (?paintButton@NppDarkMode@@YAXPAUHWND__@@PAUHDC__@@AAUButtonData@1@@Z) 中被引用
1>Common.obj : error LNK2019: 无法解析的外部符号 __imp__GetTimeFormatEx@24,该符号在函数 __catch?isCertificateValidated@@YANABV?basic_string@_WU?chartraits@W@std@@V?allocator@_W@2@@std@@0@Z1 中被引用
1>NppCommands.obj : error LNK2001: 无法解析的外部符号 __imp__GetTimeFormatEx@24
1>Common.obj : error LNK2019: 无法解析的外部符号 __imp__GetDateFormatEx@28,该符号在函数 __catch?isCertificateValidated@@YA_NABV?basicstring@WU?char_traits@_W@std@@V?allocator@W@2@@std@@0@Z1 中被引用
1>NppCommands.obj : error LNK2001: 无法解析的外部符号 __imp__GetDateFormatEx@28
1>CustomFileDialog.obj : error LNK2019: 无法解析的外部符号 __imp__SHCreateItemFromParsingName@16,该符号在函数 "bool __cdecl `anonymous namespace'::setDialogFolder(struct IFileDialog *,wchar_t const *)" (?setDialogFolder@?A0xa98153ac@@YA_NPAUIFileDialog@@PB_W@Z) 中被引用
1>CustomFileDialog.obj : error LNK2001: 无法解析的外部符号 _CLSID_FileOpenDialog
1>CustomFileDialog.obj : error LNK2001: 无法解析的外部符号 _CLSID_FileSaveDialog
1>Debug\notepad++.exe : fatal error LNK1120: 11 个无法解析的外部命令
1>已完成生成项目“notepadPlus.vcxproj”的操作 - 失败。