주어진 C++ 프로젝트에 대한 최적화를 해제하는 Visual Studio 매크로를 작성하고 싶습니다. 누구나 프로젝트 설정을 변경하기위한 샘플 코드가 있습니까? 프로젝트 설정이 일종의 값 사전으로 표시된다고 가정하면 프로젝트의 C++ 및 링커 최적화에 대한 키와 값은 무엇입니까?VS2008 매크로를 만들어 C++ 프로젝트 설정을 변경하는 방법은 무엇입니까?
1
A
답변
1
비주얼 C++ 프로젝트 모델 :
http://msdn.microsoft.com/en-us/library/2eydyk57.aspx
일부 해킹 - 함께 매크로 코드 :
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics
Imports Microsoft.VisualStudio.VCProjectEngine
Imports System.Text
Public Module RecordingModule
Sub DisableOptimizationsInAllProjectsReleaseWin32()
For i = 1 To DTE.Solution.Projects.Count
Dim proj As Object = DTE.Solution.Projects.Item(i).Object
On Error Resume Next
Dim prj As VCProject = CType(proj, Microsoft.VisualStudio.VCProjectEngine.VCProject)
If Not prj Is Nothing Then
Dim cfgs As IVCCollection = CType(prj.Configurations, Microsoft.VisualStudio.VCProjectEngine.IVCCollection)
For c = 1 To cfgs.Count
Dim cfg As VCConfiguration = CType(cfgs.Item(c), Microsoft.VisualStudio.VCProjectEngine.VCConfiguration)
If cfg.Name = "Release|Win32" Then
Dim tool As VCCLCompilerTool = CType(cfg.Tools("VCCLCompilerTool"), Microsoft.VisualStudio.VCProjectEngine.VCCLCompilerTool)
If Not tool Is Nothing Then tool.Optimization = optimizeOption.optimizeDisabled
Dim linker As VCLinkerTool = CType(cfg.Tools("VCLinkerTool"), Microsoft.VisualStudio.VCProjectEngine.VCLinkerTool)
If Not linker Is Nothing Then
linker.EnableCOMDATFolding = optFoldingType.optFoldingDefault
linker.LinkTimeCodeGeneration = LinkTimeCodeGenerationOption.LinkTimeCodeGenerationOptionDefault
linker.OptimizeReferences = optRefType.optReferencesDefault
linker.InlineFunctionExpansion = "0"
linker.EnableIntrinsicFunctions = "false"
linker.FavorSizeOrSpeed = "0"
linker.WholeProgramOptimization = "false"
End If
Exit For
End If
Next
End If
Next
End Sub
End Module
0
수정 @mackenir의 대답에서 코드 - 현재 프로젝트 :
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics
Imports System.Text
Imports Microsoft.VisualStudio.VCProjectEngine
' Add Reference to Microsoft.VisualStudio.VCProjectEngine: Project > Add Refrence
Public Module Build
Sub CheckBuild()
Dim Prj As Object = DTE.ActiveSolutionProjects(0).Object
If Prj Is Nothing Then Return
Dim VPrj As VCProject = CType(Prj, Microsoft.VisualStudio.VCProjectEngine.VCProject)
If VPrj Is Nothing Then Return
Dim Cfg As VCConfiguration = CType(VPrj.Configurations.Item("Debug|x64"), Microsoft.VisualStudio.VCProjectEngine.VCConfiguration)
If Cfg Is Nothing Then Return
Dim CTool As VCCLCompilerTool = CType(Cfg.Tools("VCCLCompilerTool"), Microsoft.VisualStudio.VCProjectEngine.VCCLCompilerTool)
If CTool Is Nothing Then Return
Dim LTool As VCLinkerTool = CType(Cfg.Tools("VCLinkerTool"), Microsoft.VisualStudio.VCProjectEngine.VCLinkerTool)
If LTool Is Nothing Then Return
CTool.DebugInformationFormat = debugOption.debugDisabled
LTool.GenerateDebugInformation = "false"
LTool.OptimizeReferences = optRefType.optNoReferences
LTool.EnableCOMDATFolding = optFoldingType.optNoFolding
ExecuteCommand("Build.BuildSelection")
End Sub
관련 문제
- 1. C# 프로젝트 용 VS2008 설치 프로젝트
- 2. vs2008 C# 프로젝트 고통스럽게 천천히
- 3. VS2008 C++ 프로젝트 속성 응용 프로그램 설정
- 4. oracle에서 OPTIMIZER_MODE 설정을 변경하는 방법은 무엇입니까?
- 5. IIS-7에서 액세스 설정을 변경하는 방법은 무엇입니까?
- 6. $ .ajax() 기본 설정을 변경하는 방법은 무엇입니까?
- 7. Visual Studio 공백 설정을 변경하는 방법은 무엇입니까?
- 8. Android에서 3g DNS 설정을 변경하는 방법은 무엇입니까?
- 9. 프로젝트 별 패키지 설정을 지정하는 방법은 무엇입니까?
- 10. xcode 4.2에서 프로젝트 설정을 편집하는 방법은 무엇입니까?
- 11. C# 2.0의 클래스 라이브러리 프로젝트 설정을 만드는 방법은 무엇입니까?
- 12. VS2008 설치 프로젝트
- 13. autotools에서 C 프로젝트의 매크로를 정의하는 방법은 무엇입니까?
- 14. VS2008 ASP.net .PDB는 어디에 만들어 졌습니까?
- 15. VS2008 설치 프로젝트 - 이식성
- 16. Visual Studio 매크로를 만들어 디버거에서 특정 프로젝트를 시작할 수 있습니까?
- 17. VS2008 솔루션의 네임 스페이스를 변경하는 가장 쉬운 방법은 무엇입니까?
- 18. vs2008 : '내 문서'경로 설정을 준수하지 않습니다.
- 19. VS2008 유닛 테스트 프로젝트 버그
- 20. java로 디스플레이 설정을 프로그래밍 방식으로 변경하는 방법은 무엇입니까?
- 21. MacOSX에서 ObjC 메소드의 기본/기본 설정을 변경하는 방법은 무엇입니까?
- 22. 배포 된 war 파일의 데이터베이스 설정을 변경하는 방법은 무엇입니까?
- 23. iPhone 응용 프로그램 환경 설정을 런타임에 변경하는 방법은 무엇입니까?
- 24. JavaScript를 사용하여 Firefox의 언어 설정을 변경하는 방법은 무엇입니까?
- 25. Django 앱 설정을 데이터베이스에 저장하거나 변경하는 방법은 무엇입니까?
- 26. 코드를 통해 앱 환경 설정을 변경하는 방법은 무엇입니까?
- 27. Windows XP에서 시스템 기본 국가 별 설정을 변경하는 방법은 무엇입니까?
- 28. VS2008 C++ 빌드 후 빌드 이벤트를 강제로 실행하는 방법은 무엇입니까?
- 29. Windows7에서 VSS에서 VS2008 프로젝트 열기
- 30. VB.NET 프로젝트 업그레이드 VS2005 VS2008