我最近开始使用 Notepad++ 的 NppAutoIndent 插件,并且对智能缩进模式相当满意,但我发现它缺乏可定制的首选项很烦人,因为我想调整智能缩进模式下的一些行为/调整。我考虑过修改插件的源代码并重新编译它以尝试获得我想要的行为,但我有 Visual Studio 2010 并且该插件的项目似乎是一个 VS 2003 项目,因为我是一个完整的初学者使用Visual Studio for C/C++ 项目我什至不知道从哪里开始处理将项目转换为 VS 2010 时给出的一些警告。
简而言之:NppAutoIndent 插件是否有更可定制的替代方案,或者是否有更好的方法来更新 VS 2010 的源项目?
更新:
这是大多数警告。其中很多似乎并不重要,但我不确定哪些可能需要注意。
- 由于 C/C++ 编译器的异常处理开关发生了变化,因此 /EHsc 在此项目中已自动转换为 /EHa。
- 完成转换为新项目文件“C:[...]\NppAutoIndent\project\NppAutoIndent.vcxproj”。
- 由于 Visual C++ 项目需要生成嵌入式(默认情况下)Windows SxS 清单,项目中的清单文件现在使用清单工具自动构建。您可能需要更改构建以使其正常工作。例如,建议将任何清单文件中包含的依赖信息转换为源代码中包含的头文件中的“#pragma comment(linker,"")”。如果您的项目已经通过资源 (.rc) 文件在 RT_MANIFEST 资源部分中嵌入了清单,则可能需要先注释掉该行,然后才能正确构建项目。
- 由于 C++ 编译器中的一致性更改,可能需要更改代码才能构建项目而不会出现错误。以前版本的 C++ 编译器允许通过成员函数名称(例如 MemberFunctionName)指定成员函数指针。C++ 标准要求使用地址运算符的完全限定名称(例如&ClassName::MemberFunctionName)。如果您的项目包含在 Windows 窗体设计器中使用的窗体或控件,则您可能必须更改 InitializeComponent 中的代码,因为设计器生成的代码在委托构造中使用了不一致的语法(用于事件处理程序)。
- 此应用程序已更新为包括与 Windows Vista 的用户帐户控制 (UAC) 功能相关的设置。默认情况下,当在启用了 UAC 的 Windows Vista 上运行时,此应用程序被标记为使用与启动它的进程相同的权限运行。此标记还禁止应用程序使用虚拟化运行。您可以从项目的属性页更改 UAC 相关设置。
- 此版本不支持“VCCLCompilerTool”的属性“Detect64BitPortabilityProblems”,并且在转换过程中已将其删除。
- 不再支持 VCWebServiceProxyGeneratorTool。该工具已从您的项目设置中删除。
- C/C++ 编译器开关 /Og 已被弃用,并已从您的项目设置中删除。建议您改用 /O1 或 /O2。
- VCConvertEngine 无法在工具 VCCLCompilerTool 下转换属性 GlobalOptimizations = TRUE。
- 此版本不支持“VCCLCompilerTool”的属性“Detect64BitPortabilityProblems”,并且在转换过程中已将其删除。
- 此版本不支持“VCLinkerTool”的属性“OptimizeForWindows98”,在转换过程中已将其删除。
- VCConvertEngine 无法在工具 VCCLCompilerTool 下转换属性 GlobalOptimizations = TRUE。
- 此版本不支持“VCCLCompilerTool”的属性“Detect64BitPortabilityProblems”,并且在转换过程中已将其删除。
- 此版本不支持“VCLinkerTool”的属性“OptimizeForWindows98”,在转换过程中已将其删除。
- 此版本不支持“VCCLCompilerTool”的属性“Detect64BitPortabilityProblems”,并且在转换过程中已将其删除。
- MSB8012:$(TargetName) ('NppAutoIndent') 与项目配置 'Debug|Win32' 中链接器的 OutputFile 属性值 '..\build\NppAutoIndentA_D.dll' ('NppAutoIndentA_D') 不匹配。这可能会导致您的项目构建不正确。要更正此问题,请确保 $(TargetName) 属性值与 %(Link.OutputFile) 中指定的值匹配。
- MSB8012:$(TargetPath) ('C:[...]\NppAutoIndent\project..\build\Debug\NppAutoIndent.dll') 与链接器的 OutputFile 属性值 '..\build\NppAutoIndentA_D.dll' 不匹配( 'C:[...]\NppAutoIndent\build\NppAutoIndentA_D.dll')在项目配置“调试|Win32”中。这可能会导致您的项目构建不正确。要更正此问题,请确保 $(TargetPath) 属性值与 %(Link.OutputFile) 中指定的值匹配。
- MSB8012:$(TargetName) ('NppAutoIndent') 与项目配置 'Release|Win32' 中链接器的 OutputFile 属性值 '..\build\NppAutoIndentA.dll' ('NppAutoIndentA') 不匹配。这可能会导致您的项目构建不正确。要更正此问题,请确保 $(TargetName) 属性值与 %(Link.OutputFile) 中指定的值匹配。
- MSB8012:$(TargetPath) ('C:[...]\NppAutoIndent\project..\build\Release\NppAutoIndent.dll') 与链接器的 OutputFile 属性值 '..\build\NppAutoIndentA.dll' 不匹配( 'C:[...]\NppAutoIndent\build\NppAutoIndentA.dll')在项目配置'Release|Win32'中。这可能会导致您的项目构建不正确。要更正此问题,请确保 $(TargetPath) 属性值与 %(Link.OutputFile) 中指定的值匹配。
- MSB8012:$(TargetPath) ('C:[...]\NppAutoIndent\project..\build\Release Unicode\NppAutoIndent.dll') 与链接器的 OutputFile 属性值 '..\build\NppAutoIndent.dll' 不匹配('C:[...]\NppAutoIndent\build\NppAutoIndent.dll') 在项目配置'Release Unicode|Win32'中。这可能会导致您的项目构建不正确。要更正此问题,请确保 $(TargetPath) 属性值与 %(Link.OutputFile) 中指定的值匹配。
- MSB8012:$(TargetName) ('NppAutoIndent') 与项目配置 'Debug Unicode|Win32' 中的链接器的 OutputFile 属性值 '..\build\NppAutoIndent_D.dll' ('NppAutoIndent_D') 不匹配。这可能会导致您的项目构建不正确。要更正此问题,请确保 $(TargetName) 属性值与 %(Link.OutputFile) 中指定的值匹配。
- MSB8012:$(TargetPath) ('C:[...]\NppAutoIndent\project..\build\Debug Unicode\NppAutoIndent.dll') 与链接器的 OutputFile 属性值 '..\build\NppAutoIndent_D.dll' 不匹配('C:[...]\NppAutoIndent\build\NppAutoIndent_D.dll') 在项目配置“调试 Unicode|Win32”中。这可能会导致您的项目构建不正确。要更正此问题,请确保 $(TargetPath) 属性值与 %(Link.OutputFile) 中指定的值匹配。