私は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. Django-Crontabと展開環境
- 3. PHP `getEnv`はシステム環境変数を読み取ることができます
- 4. テキスト内の環境変数を展開する
- 5. Omake getenv - 環境変数が見つかりません
- 6. Elastic Beanstalkでのドッキングウィンドウの展開に環境変数を提供
- 7. 展開せずに本番環境でコードを変更する -
- 8. alfrescoの環境と運用の展開
- 9. getenv()は同じ環境変数の異なるプログラムで異なる値を返します
- 10. プロジェクト設定のQt Creator環境変数
- 11. メゾスフィアの "args"はdocker runコマンドの環境変数と同等ですか?
- 12. 一度展開された環境変数分割サイト
- 13. 環境変数を光源とする環境変数
- 14. Redgate DLM Automation - データベースを複数の環境に展開する
- 15. 複数の環境で展開(特にデータベースオブジェクトの変更)を同期する方法
- 16. 環境変数のRAWコンテンツを取得する[展開しない]
- 17. 自己ホスト制作環境でKubernetesを展開する
- 18. ASPNETCORE_ENVIRONMENT環境変数から開発エラー
- 19. ローカルサービスファブリッククラスタのカスタネット開発者環境変数?
- 20. 環境変数
- 21. 環境変数
- 22. 環境変数?
- 23. 環境変数
- 24. 特定の環境で展開するSpringブートアプリケーションアプリケーション
- 25. Rails(ローカル)開発環境でHTTPとHTTPSを同時に実行する開発環境
- 26. 環境変数とPHP
- 27. Pythonと環境変数
- 28. SaltStackマクロと環境変数
- 29. kornシェルと環境変数
- 30. シークレットマネージャと環境変数
これは、%PATH%などの環境変数を展開する関数ですか?たとえば、私のプロセスを呼び出す前にコマンドラインから設定したカスタム環境変数は? – sashoalm
@satuonいいえ。ユーザーのホームディレクトリやアプリケーションデータディレクトリのような標準的な場所が得られます。その他。もちろん、カスタム環境変数はgetenv()で取得する必要があります。 Qtはgetenv()を抽象化していません。なぜなら、それはすべての標準C++コンパイラで利用できる標準関数だからです。 –
実際には、qgetenvがあります。http://doc.qt.digia.com/qt/qtglobal.html#qgetenv「qgetenv()」は、標準Cライブラリのgetenv()がVC2005以降のバージョンで廃止されたために導入されましたqgetenv()はVCの新しい置換関数を使用し、他のすべてのプラットフォームで標準のCライブラリの実装を呼び出します。 –