1

これを高低で検索していて、それを理解できないようです.

というわけで、c# プロジェクトを使って Visual Studio で Web アプリケーションを作っています。私のソリューションには別のプロジェクトがあります。それは、dll にコンパイルされる ac プロジェクトです。2 つの間で情報をやり取りできるようになり、正しく機能しています。

私のアプリケーションでは、ユーザーがファイルをアップロードすると、ファイル システムの「includes」フォルダーに保存されます。dll (SDK から取得した C コードからコンパイル) は、そのファイルを読み取ってデコードすることになっています。dll プロジェクトは、exe としてコンパイルしてファイル パスを送信すると正常に動作します。

私の質問は、ディレクトリをスキップしてこのファイルを取得するために、DLL (現在は bin フォルダーにあります) を取得するにはどうすればよいですか? ファイルパスをCコードにハードコーディングしようとしましたが、うまくいきません。

FILE *fp;
bool isWorking = false
if(fp = fopen("../Include/testFile.fit", "r"))
    isWorking = true

私はまた、DLLからテキストファイルに書き込もうとしましたが、それが飛び出す場所を見つけてそのディレクトリを参照として使用することを望んでいましたが、その場合、cコードはファイルを作成および保存していません.

4

1 に答える 1

0

ファイル システム内の DLL ファイルの位置は重要ではありません。重要な部分は、結果のバイナリが実行される場所と、現在の作業ディレクトリとして認識される場所です。

C# プログラムで DLL を使用する場合、DLL 内のコードは、C# プログラムと同じ現在の作業ディレクトリで実行されます (DLL 内のコードで変更しない限り)。

そのため、C# プログラムからファイルをロードする場合と同様に、パスに関してファイルをロードするようにしてください。

于 2012-09-14T09:10:23.760 に答える