0

いくつかの単純なキー=値のペアを含む.propertiesファイルを作成しました。インポートしたJavaクラスを使用してサンプルのc++コンソールアプリケーションから試してみましたが、問題なくアクセスできました。

今、私は別の(管理されていない)c++プロジェクトによって呼び出されているC++dllから同じようにそれを使用しようとしています。

何らかの理由で、ファイルにアクセスしていません。

たぶん私のファイルの場所が間違っています。どこに保管すればいいですか?

他に何が問題になる可能性がありますか?

TIA

4

1 に答える 1

1

「DLL」についておっしゃっていますが、MSWindowsを使用していると思います。DLLから、ログオンしているユーザーとは関係なく、そこでファイルを検索することは制限された項目です。最良の方法は、環境変数からアセンブルされたパスにファイルを保存することですALLUSERSPROFILE。これは、すべてのユーザーに等しく、すべてのユーザーが通常書き込みアクセス権を持つ唯一の場所です。アプリケーションデータは、<MyCompany>または<MyApplicationsName>のような名前のプライベートサブディレクトリに存在する必要があります。タイプ

echo %ALLUSERSPROFILE%

Windowsのコマンドラインプロンプトで、マシン上の実際の場所を確認します。

データを次の場所に保存します。

%ALLUSERSPROFILE%\MyApp\

その後、dllはgetenvを使用してALLUSERSPROFILEの場所を照会できます。

char *allUsersData = getenv("ALLUSERSPROFILE");
于 2010-02-02T20:03:11.587 に答える