1

C++ コードのパフォーマンスを向上させるためにインテル C++ コンパイラーを使用しています。これを使用するには、Visual Studio プロジェクトを IDE を介して Intel プロジェクトに変換する必要があります。Intel コンパイラはどこにもインストールされていないため、Intel ビルドを作成する必要があるマシンでのみこの手順を実行します。

何らかのスクリプトを使用して、この変換プロセスを自動化する方法を検討したいと考えていました。EnvDTE API を使用して同じことができないかと考えていました。

これまでのところ、VBScript で以下に到達することができました。

Dim objDTE
' Creates an instance of the Visual Studio  
Set objDTE = CreateObject("VisualStudio.DTE")  

' Make it visible   
objDTE.MainWindow.Visible = True  

' Open a .sln file   
objDTE.Solution.Open("Path to solution file")  

Dim sol    
Set sol = objDTE.Solution.SolutionBuild  

この時点で、次のように関数を呼び出すことができます。

sol.Clean  
sol.Build  

そして彼らはうまくいきます。

これを超えて、ソリューションに適用できる他のコマンドを特定する方法を見つけることができませんでした。たとえば、インテル C++ コンパイラーは、それ自体をプラグインとして Visual Studio に統合します。ソリューション オブジェクトで使用できるコマンドのリストを特定し、適切なコマンドを実行して Visual Studio プロジェクトをインテル® コンパイラーを使用するように変換する方法を見つけられるかどうかを考えていました。

この変換を自動化することは可能ですか?

前もって感謝します。

4

2 に答える 2

0

DTEを介したCOM自動化は次のようになります。

/// Intel convertion 
Project proj;
proj = DTE.Solution.Projects.Item(1) // Should be vc++ one

ProjectConversions pconv = (ProjectConversions)EnvDTE.GetObject("PrjConvert");
pconv.EnableUsingIntelCppCompiler(prj1.Name);

/ Common7 \ IDE\PublicAssembliesから.NET参照IntelCppOptPkg.dllを追加する必要があります

さらに、「\ CommonFiles \ Intel \ sharedfiles \ ia32 \ Bin\ICProjConvert.exe」にある変換ツールがあります。キー/で利用可能なツールに関するヘルプ情報?またはURLで

必要なほとんどすべてがMSDN自動化ドキュメントにあります

于 2011-10-17T10:52:54.927 に答える
0

同じことに遭遇する可能性がある人のために、DTE.ExecuteCommand を使用して、拡張機能によって公開されたコマンドを含む任意のコマンドを実行できます。使用可能なすべてのコマンドのリストを出力するには、次の VBScript を実行します。

Set DTE = CreateObject("VisualStudio.DTE.10.0") ' adjust version as needed
For Each cmd In DTE.Commands
    WScript.Echo cmd.Name
Next
于 2011-04-27T17:27:54.097 に答える