Недавно я начал использовать плагин NppAutoIndent для Notepad++ и был довольно доволен режимом Smart Indent, но отсутствие настраиваемых параметров меня раздражает, поскольку в режиме Smart Indent есть несколько вариантов поведения, которые я хотел бы настроить. изменить. Я думал изменить исходный код плагина и перекомпилировать его, чтобы попытаться добиться нужного поведения, но у меня есть Visual Studio 2010 и проект для плагина кажется проектом VS 2003, и, поскольку я новичок в использовании Visual Studio для проектов C/C++, я не Я даже не знаю, с чего начать, чтобы разобраться с некоторыми предупреждениями, выдаваемыми при конвертации проекта в VS 2010.
Вкратце: есть ли более настраиваемая альтернатива плагину NppAutoIndent или есть лучший способ обновить исходный проект для VS 2010?
ОБНОВИТЬ:
Вот большинство предупреждений. Многие из них кажутся неважными, но я не уверен, на что стоит обратить внимание.
- Из-за изменения переключателей обработки исключений для компилятора C/C++, /EHsc был автоматически преобразован в /EHa в этом проекте.
- Выполнено преобразование в новый файл проекта «C:[...]\NppAutoIndent\project\NppAutoIndent.vcxproj».
- Из-за требования, чтобы проекты Visual C++ создавали встроенный (по умолчанию) манифест Windows SxS, файлы манифеста в проекте теперь автоматически создаются с помощью инструмента манифеста. Возможно, вам придется изменить свою сборку, чтобы она работала правильно. Например, рекомендуется преобразовать информацию о зависимостях, содержащуюся в любых файлах манифеста, в "#pragma comment(linker,"")" в файле заголовка, включенном в исходный код. Если ваш проект уже встраивает манифест в раздел ресурсов RT_MANIFEST через файл ресурсов (.rc), может потребоваться закомментировать эту строку, прежде чем проект будет построен правильно.
- Из-за изменения соответствия в компиляторе C++ может потребоваться изменение кода, прежде чем ваш проект будет построен без ошибок. Предыдущие версии компилятора C++ позволяли указывать указатели функций-членов по имени функции-члена (например, MemberFunctionName). Стандарт C++ требует полного имени с использованием оператора адреса (например, &ClassName::MemberFunctionName). Если ваш проект содержит формы или элементы управления, используемые в конструкторе Windows Forms, вам может потребоваться изменить код в InitializeComponent, так как сгенерированный конструктором код использовал несовместимый синтаксис при построении делегата (используемый в обработчиках событий).
- Это приложение было обновлено и теперь включает параметры, связанные с функцией контроля учетных записей (UAC) в Windows Vista. По умолчанию при запуске в Windows Vista с включенным UAC это приложение помечается для запуска с теми же привилегиями, что и процесс, который его запустил. Эта маркировка также запрещает запуск приложения с виртуализацией. Вы можете изменить настройки, связанные с UAC, на страницах свойств проекта.
- Атрибут Detect64BitPortabilityProblems в VCCLCompilerTool не поддерживается в этой версии и был удален во время преобразования.
- VCWebServiceProxyGeneratorTool больше не поддерживается. Инструмент был удален из настроек вашего проекта.
- Переключатель /Og компилятора C/C++ объявлен устаревшим и удален из настроек вашего проекта. Вместо этого рекомендуется использовать /O1 или /O2.
- VCConvertEngine не удалось преобразовать атрибут GlobalOptimizations = TRUE в инструменте VCCLCompilerTool.
- Атрибут Detect64BitPortabilityProblems в VCCLCompilerTool не поддерживается в этой версии и был удален во время преобразования.
- Атрибут OptimizeForWindows98 из VCLinkerTool не поддерживается в этой версии и был удален во время преобразования.
- VCConvertEngine не удалось преобразовать атрибут GlobalOptimizations = TRUE в инструменте VCCLCompilerTool.
- Атрибут Detect64BitPortabilityProblems в VCCLCompilerTool не поддерживается в этой версии и был удален во время преобразования.
- Атрибут OptimizeForWindows98 из VCLinkerTool не поддерживается в этой версии и был удален во время преобразования.
- Атрибут Detect64BitPortabilityProblems в VCCLCompilerTool не поддерживается в этой версии и был удален во время преобразования.
- MSB8012: $(TargetName) ("NppAutoIndent") не соответствует значению свойства OutputFile компоновщика "..\build\NppAutoIndentA_D.dll" ("NppAutoIndentA_D") в конфигурации проекта "Debug|Win32". Это может привести к неправильной сборке вашего проекта. Чтобы исправить это, убедитесь, что значение свойства $(TargetName) соответствует значению, указанному в %(Link.OutputFile).
- MSB8012: $(TargetPath) ('C:[...]\NppAutoIndent\project..\build\Debug\NppAutoIndent.dll') не соответствует значению свойства OutputFile компоновщика '..\build\NppAutoIndentA_D.dll' ( 'C:[...]\NppAutoIndent\build\NppAutoIndentA_D.dll') в конфигурации проекта 'Debug|Win32'. Это может привести к неправильной сборке вашего проекта. Чтобы исправить это, убедитесь, что значение свойства $(TargetPath) соответствует значению, указанному в %(Link.OutputFile).
- MSB8012: $(TargetName) ("NppAutoIndent") не соответствует значению свойства OutputFile компоновщика "..\build\NppAutoIndentA.dll" ("NppAutoIndentA") в конфигурации проекта "Release|Win32". Это может привести к неправильной сборке вашего проекта. Чтобы исправить это, убедитесь, что значение свойства $(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') в конфигурации проекта "Выпуск Unicode|Win32". Это может привести к неправильной сборке вашего проекта. Чтобы исправить это, убедитесь, что значение свойства $(TargetPath) соответствует значению, указанному в %(Link.OutputFile).
- MSB8012: $(TargetName) ("NppAutoIndent") не соответствует значению свойства OutputFile компоновщика "..\build\NppAutoIndent_D.dll" ("NppAutoIndent_D") в конфигурации проекта "Отладка Unicode | Win32". Это может привести к неправильной сборке вашего проекта. Чтобы исправить это, убедитесь, что значение свойства $(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).