私はgetenv関数と同等のものを探しています。Qtで環境変数を展開する(getenvと同等)
答えて
Qtには、qgetenv()
と呼ばれるgetenv()
のラッパーがあります。
QByteArray qgetenv (const char * varName)
getenv()
標準機能ですが、Visual StudioはQtはqgetenv()
ラッパーを提供する理由であることを推奨していません。
標準のファイルシステムの場所(ホームディレクトリ、アプリケーションデータディレクトリなど)を取得する場合は、代わりにQDesktopServices::storageLocation()
(Qt 4)またはQStandardPaths::writableLocation()
(Qt 5)を使用する必要があります。
Qtの場合、環境変数にアクセスするときに「高レベル」のアプローチもあります。これは、QtアプリケーションがQCoreApplication内で実行されている場合にのみ機能します.QtoreApplicationはほとんどのQtアプリケーションで使用します。
この場合、Qtバージョン4.6以上の場合はQProcessEnvironmentを使用できます。あなたは
QProcessEnvironment::systemEnvironment();
を使用して、現在のプロセス環境にアクセスすることができますし、これはほとんどの場合でのgetenv/qgetenvのアプローチを使用すると、これは、動作をシャドウとしてすることがより便利にする必要があります
QProcessEnvironment::systemEnvironment().value("<variablename>", "<defaultvalue>");
経由で任意の変数を照会することができますより一般的な方法でのシステム実装であり、IMHOはもっと "Qtに似た"アプローチでもあります。
また、 'getenv'とは異なり、Unicode文字を含む環境変数を正しくサポートしています。 –
- 1. コマンドプロンプトの展開環境変数
- 2. テキスト内の環境変数を展開する
- 3. 展開せずに本番環境でコードを変更する -
- 4. alfrescoの環境と運用の展開
- 5. 環境変数のRAWコンテンツを取得する[展開しない]
- 6. 環境変数とPHP
- 7. Process.Start()とPATH環境変数
- 8. Rails(ローカル)開発環境でHTTPとHTTPSを同時に実行する開発環境
- 9. 特定の環境で展開するSpringブートアプリケーションアプリケーション
- 10. Live SharePoint 2010環境にカスタム機能を展開する
- 11. WinDbg環境変数
- 12. Rails環境変数
- 13. Monodroid環境変数
- 14. Eclipse環境変数
- 15. netbeans環境変数
- 16. CreateProcessでインスタンス化されたコマンドで環境変数を使用または展開する方法は?
- 17. .NETデータバインディングと同等のQtですか?
- 18. SharePoint WSPに複数の環境を展開し、SPWebConfigModificationを使用します。
- 19. djangoプロジェクトとランタイム環境を一度にクリックして展開するには
- 20. bashの変数展開と
- 21. 環境変数を設定する
- 22. 複数の環境で開発データベースを同期して維持する
- 23. 開発環境と生産環境を持つGit
- 24. Visual Studioソリューションパス環境変数
- 25. パス環境変数subprocess.call
- 26. JS/Coffeescriptの環境変数
- 27. のlog4j - アクセス環境変数
- 28. アンドロイドのデバッグ環境変数
- 29. バッチスクリプトマシンの環境変数
- 30. BASH SCRIPT、環境変数、PID
これは、%PATH%などの環境変数を展開する関数ですか?たとえば、私のプロセスを呼び出す前にコマンドラインから設定したカスタム環境変数は? – sashoalm
@satuonいいえ。ユーザーのホームディレクトリやアプリケーションデータディレクトリのような標準的な場所が得られます。その他。もちろん、カスタム環境変数はgetenv()で取得する必要があります。 Qtはgetenv()を抽象化していません。なぜなら、それはすべての標準C++コンパイラで利用できる標準関数だからです。 –
実際には、qgetenvがあります。http://doc.qt.digia.com/qt/qtglobal.html#qgetenv「qgetenv()」は、標準Cライブラリのgetenv()がVC2005以降のバージョンで廃止されたために導入されましたqgetenv()はVCの新しい置換関数を使用し、他のすべてのプラットフォームで標準のCライブラリの実装を呼び出します。 –