.NET Framework 3.5を使用してC#で書かれたWinFormsアプリケーションがあります。 SQL Serverデータベースを使用して、指定されたODBC-DSNからマネージコードからの呼び出し時にC++ DLLがクラッシュする
[DllImport(DllName)]
public static unsafe extern int LoadDBData(String dsn, String userid, String password);
この方法輸入データ:このアプリケーションは、次の宣言を使用して、インポートされたC++ DLLを使用します。データベースにデータが多すぎると、コールがクラッシュします。このextern dllのプロバイダは、dllがより多くのヒープサイズを取得することができず、アプリケーションがより多くのヒープメモリを提供する必要があるため、この問題が発生すると述べています。
どうすればこの問題を解決できますか?私が知っている限り、自動ガベージコレクションからコンポーネントを除外する唯一の可能性は、すでに使用している安全でないキーワードです。 何か考えていただければ幸いです。事前に
おかげ
マーティン
これはベンダーのライブラリに問題があると私は考えています。しかし、私が主にマネージドコードで開発すると、ベンダーは私の意見を不安定にしました。 しかし、Excelのマックロからライブラリを呼び出そうとしましたが、クラッシュしました。だから私はC#で私の呼び出しの問題ではないと確信しています。 –