dllのコード全体は、ネイティブCを使用して記述されており、1つの関数は参照用に以下のとおりです。アンマネージドネイティブCコードから.NETコンパチブル
DLLIMPORTのINT32 FAR PASCAL swe_calc( ダブルTJD、INT IPL、INT32 IFLAG、 ダブル*のXX、 するchar * SERR)。
ほとんどの関数はFAR PASCALを使って書かれていますが、このdllを.netと互換性のあるものに変換しようとしたときにエラーが発生しました。
Comman Runtime Supportプロパティを「共通ランタイムサポートなし」から共通ランタイムサポート(つまり\ clr)に変更してみました。 \ MDも変更しました。
コマンドプロンプトからRegsvr32を使用してdllを登録しようとしたときに、「モジュール「mydll.dll」がエントリポイントDllRegisterServerが見つかりませんでした」というエラーが表示されました。
私はC#アプリケーションからこのDLLを使いたいと思っています。
ありがとうございました。
ガン
感謝。 私は以下のように提案した方法を試しました。 [DllImport( "swedll32.dll")] public static extern double swe_set_lapse_rate(double lapse_rate); プライベートボイドのbutton1_Click(オブジェクト送信者、のEventArgs電子) {ダブルT = swe_set_lapse_rate(200);; } 私が宣言され、その関数を呼び出しボタンクリックで、例外「system.dllnotfoundexception」を得ました。 「dllをロードするための不具合」などの追加情報。 は、私がどこか間違っているなら、私に教えてください。それはDLLを見つけることができないことを言っている –
感謝。それが見つかる場所に置いてください。コマンドプロンプトとタイプ「パス」を開きます場合は、あなたがそれをドロップすることができ、Windowsがそれを見つけることができるようになります場所のリストを取得します。 –