問題タブ [visual-c++]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - すべての Visual Studio 2008 の「マクロ」を Python スクリプトに渡す方法は?
[注: この質問はこれと似ていますが、同じではありません。 ]
Visual Studio は、進行中のビルドに関する情報を含むシミュレートされた環境変数 (C++ マクロとは完全に無関係) の一種である数十の「マクロ」を定義します。例:
以下は、私が確認した 43 個の組み込みマクロの完全なセットです (使用している VS のバージョンと有効にしているツールによって異なる場合があります)。
これらのうち、ビルドイベントに使用される環境に設定されているのはFrameworkDir
、FrameworkSDKDir
、VCInstallDir
およびの 4 つだけです。VSInstallDir
Brian が言及しているように、ユーザー定義のマクロは、ビルド タスクが実行される環境で設定するように定義できます。私の問題は、組み込みのマクロにあります。
Visual Studio ビルド後のイベントを使用して、ビルド プロセスの一部として Python スクリプトを実行します。マクロ (組み込みおよびユーザー定義) のセット全体を環境内のスクリプトに渡したいのですが、方法がわかりません。私のスクリプト内では、通常の環境変数 (Path、SystemRoot など) にアクセスできますが、これらの「マクロ」にはアクセスできません。今できることは、スクリプト内で処理する名前付きオプションとしてそれらを 1 つずつ渡すことだけです。たとえば、ビルド後のイベントのコマンド ラインは次のようになります。
首が痛いだけでなく、Post-Build Event コマンド ラインのサイズには制限があるため、コマンド ラインが切り詰められているため、このメソッドを使用して数十個のマクロを渡したくても渡すことができません。
マクロの名前と値のセット全体を、MSBuild (ネイティブ VC++ では使用できないと思われる) またはその他の make のようなビルド ツールに切り替える必要のないコマンドに渡す方法があるかどうかを知っている人はいますか?
winapi - プログラムによるローカル セキュリティ ポリシーの変更/検出
次の少なくとも 1 つを行うことは可能ですか。
1) ローカル セキュリティ ポリシーの設定を検出します (アカウント: ローカル アカウントでの空のパスワードの使用をコンソール ログオンのみに制限します)。
2)その設定を変更します
Win32/MFC を使用していますか?
winapi - Windows上の任意のユーザーのCSIDL_LOCAL_APPDATAパスを取得します
(現在ログオンしているユーザーだけでなく)必要なCSIDL_LOCAL_APPDATA
ユーザー用に取得するWin32 / MFC APIはありますか?「domain\user」という形式のユーザーのリストがあり、そのパスのリストを取得したいとします。それは可能ですか?
visual-c++ - Visual Studio で C++ プロジェクトをコンパイルすると、致命的なエラー "LNK1104: ファイル 'C:\Program.obj' を開けません" が発生するのはなぜですか?
Visual Studio 2008 で新しい C++ プロジェクトを作成しました。まだコードは書かれていません。プロジェクトの設定のみが変更されました。
プロジェクトをコンパイルすると、次の致命的なエラーが発生します。
致命的なエラー LNK1104: ファイル 'C:\Program.obj' を開けません
c++ - 最初のコンパイル エラーで Visual C++ 2008 ビルドを自動的に停止しますか?
個々のソース ファイルをコンパイルできることはわかっていますが、多くのファイルで使用されるヘッダー ファイルを編集する場合など、.cpp
複数のソース ファイルを再コンパイルする必要がある場合があります。それがビルドの目的です。
VC9 (Visual C++ 2008) の「ビルド」コマンドのデフォルトの動作は、それを必要とするすべてのファイルをコンパイルしようとすることです。これにより、多くのコンパイルが失敗する場合があります。私は通常、エラーを監視し、ctrl-break を押してビルドを手動で停止します。
ビルドが最初のコンパイル エラー(最初に失敗したプロジェクト ビルドではない) で自動的に停止するように構成する方法はありますか?
windows - Visual C++ でのビルド エラー/成功のサウンド?
長い Visual C++ ビルドでは、次のようなビルド/コンパイル結果に対して何らかの (オプションの) サウンドを聞くと非常に役立ちます。
- 個別コンパイルエラー
- ファイルのコンパイルの成功/失敗
- ビルドの成功/失敗
- バッチビルドの成功/失敗
Visual C++ (特に、Vista の Visual C++ 2008) でこれらの種類のビルドの発生に対してサウンドを有効にする方法を知っている人はいますか?
security - ログオンせずにユーザーになりすますことはできますか?
ユーザー名/パスワードを提供せずにユーザーになりすますことは可能ですか? CSIDL_LOCAL_APPDATA
基本的に、関数を使用してユーザー (現在のユーザーではない) を取得したいと思いShGetFolderPath()
ます。私が現在持っているのは、そのユーザーの SID だけです。
c++ - 間接 Typelib がデバッグ dll から適切にインポートされない
VC2005 を使用して、ビルドする 3 つのプロジェクトがあります。
- libA (typelib を含み、libA.dll になります): IDL には次の行があります。
library libA { ...
- libB (libA をインポートする typelib を含み、libB.dll になります): IDL には次の行があります。
importlib( "libA " );
- libC (libB をインポート): ソース ファイルの 1 つに
#import <libB.dll>
これ#import <libB.dll>
は、コンパイラによって次の方法で処理されます (ドキュメントによると)。
- %PATH% のディレクトリを検索
- %LIB% の検索ディレクトリ
- 「追加のインクルード パス」を検索します (/I コンパイラ オプション)。
libC をコンパイルすると、cl.exe が明らかに実行可能パスで libA.dll を検出できることがわかります (Filemon.exe を使用)。
VC エラー C4772: 別の依存関係を持つ typelib の #import
ただし、依然として libA 名前空間が見つからず、libA 型へのすべての参照が置き換えられます。__missing_type__
(編集) 一方、デバッグ dll を使用している場合にのみ問題が発生することがわかりました。
この問題を以前に見た人はいますか?そしてそれを解決しましたか?
visual-c++ - VC++ 2005 でプロジェクト全体の名前を変更する方法
私は自分用に作成した非常に大きなプロジェクトを持っており、最近、クライアントがいくつかの変更を加えた独自のバージョンを要求しました。プロジェクト名はかなりばかげていて、私のクライアントはソースを欲しがっていたので、すべてのファイルの名前を
など..残念ながら、すべてをまとめて追加した後、プロジェクト名自体を変更する方法がわかりません。さらに、コンパイル時にこのエラーが発生しています。
これをすべて変更する簡単な方法が必要ですよね?
c++ - 奇妙なMSC8.0エラー:「ESPの値が関数呼び出し全体で適切に保存されませんでした...」
最近、一部のVisual Studioプロジェクトをライブラリに分割しようとしましたが、ライブラリプロジェクトの1つを依存関係として持つテストプロジェクトでは、すべてが正常にコンパイルおよびビルドされたようです。ただし、アプリケーションを実行しようとすると、次の厄介な実行時エラーメッセージが表示されました。
実行時チェックの失敗#0-ESPの値は、関数呼び出し全体で適切に保存されませんでした。これは通常、異なる呼び出し規約で宣言された関数ポインターを呼び出した結果です。
関数の呼び出し規約(__cdeclなど)を指定したことはなく、すべてのコンパイラスイッチをデフォルトのままにします。私がチェックしたところ、プロジェクト設定は、ライブラリとテストプロジェクト全体で規約を呼び出すために一貫しています。
更新:開発者の1人が、「BasicRuntimeChecks」プロジェクト設定を「Both(/ RTC1、equiv。to / RTCsu)」から「Default」に変更し、ランタイムが消えて、プログラムが明らかに正しく実行されたままになりました。私はこれをまったく信用していません。これは適切な解決策でしたか、それとも危険なハックでしたか?