2

VBAコードでDLLを参照する際に問題が発生しました。

私の目的は次のとおり です。dllファイル、C ++で記述されたコード(おそらくそうだと思います)があり、コンパイルされています。そこに何がコーディングされているのかわかりません。VBAコードからこのdllにアクセスし、dllから結果を取得する必要があります。dllの入力は、Excelシートにある3つの整数値です。

このパブリック宣言関数の2次Lib"C:... \ Desktop \ Test \ quadratic.dll"(ByVal a As Integer、ByVal b As Integer、ByVal c As Integer)As Double(... threeドットは単なるウィンドウディレクトリです)

ボタンをクリックすると、シートから入力値a、b、cを読み取り、getvalue = quadratic(a、b、c)のような引数を渡す関数を呼び出します。

  1. スクリプトを実行すると、「ランタイムエラー '48':ファイルが見つかりません:C:... \ Desktop \ Test\quadratic.dll」というMicrosoftVisualBasicエラーが発生します。

  2. この後、[ツール]->[参照]->[参照]を使用してこのdllを参照し、デスクトップに保持されているdllファイルをマッピングしようとすると、Microsoft Visual BasicforApplicationエラーが発生します。

  3. コマンドzippy32C:... \ dllname.dllを使用してcmdプロンプトを使用してDLLを登録しようとしましたが、以下のエラーが表示されます "LoadLibrary(" C:\ Documents ")failed-特定のモジュールが見つかりませんでした"

  4. コマンドrundll32.exeC:... \ dllname.dllを使用してcmdプロンプトの2番目のメソッドでDLLを登録しようとしましたが、「C:\Documentsの読み込み中にエラーが発生しました。特定のモジュールが見つかりませんでした」というエラーが表示されます。

これを解決する方法がわかりません。VBコードを変えて色々試してみましたが、嬉しくありませんでした。

必要です。1。VBAスクリプトを使用して参照するにはどうすればよいですか。2. DLLで問題を見つける方法と、VBAで問題を参照できない理由を教えてください。

非常に緊急ですので、お早めにご協力ください。

よろしく、カビラン

4

1 に答える 1

0

Dll と使用しているファイル構造について詳しく知らずに問題を診断することは困難ですが、Dll は現在、'My Documents' などのディレクトリにあるようです。DOS はスペースを自動的に処理しないことに注意してください。二重引用符を追加する必要があります。

register コマンドをもう一度実行してみてください。ただし、今度はパスを引用符で囲みます。

regsvr32 "C:\Documents and Settings\dllname.dll"

これが機能すると仮定すると、ステップ 2 で指定した方法で Dll を参照できるはずです。

于 2012-11-23T16:03:15.830 に答える