1

奇妙な問題があります。

C ++ Visual Studio 2010で作成したdll(my.dllと呼びます)は、サードパーティのライブラリ(tp.libなど)を使用し、サードパーティのdll(tp.dllなど)を呼び出します。

目的をデバッグするために、configurationProperties-> debugging-> command:Excel.exeおよびconfigurationProperties-> debugging-> commandArguments: "$(TargetPath)"

私のコンピュータでは、path変数をtp.dllが存在するディレクトリにも設定しています。

Visual StudioでF5キーを押すと、Excelがmy.dllで開き、クラッシュして「dosモードで開くことができません」というエラーが表示されます。これが発生する理由は、my.dllのデバッグバージョンが展開されているときにtp.dllが展開されていないためです。

Excelのインスタンスを個別に開き、my.dllのデバッグバージョンを手動でドロップすると、すべてが正常に機能し、my.dllに書き込んだすべての関数を確認できます。

唯一の問題は、個別に開いたExcelのインスタンスにVisual Studioをアタッチする方法がわからないため、デバッグ方法がわからないことです。

私の質問は:

1>すでに開いているExcelのインスタンスにVisualStudioをアタッチするにはどうすればよいですか?

また

2> F5キーを押しながら、Excelがmy.dllの展開を開始する前に、PATH変数で指定されたディレクトリから必要なtp.dllを取得するようにするにはどうすればよいですか。

これら2つのいずれかを使用すると、デバッグの目的でコードをステップスルーできます。

前もって感謝します。

4

2 に答える 2

1

さて、私は試行錯誤によってそれを行う方法を考え出しました1>デバッグdllを構築します。2> Excelのインスタンスを開き、my.dllをデバッグフォルダからそのインスタンスにドロップします。3> Visual Studio 2010の場合:プロパティ->構成プロパティ->デバッグ->コマンド=excel.exe4>プロパティ->構成プロパティ->デバッグ->アタッチ=はい

そして今、あなたはビジュアルスタジオでF5を押します。これにより、Visual Studioエディターがmy.dllの実行中のコピーにアタッチされ、コードをステップ実行できるようになります。

于 2012-10-12T15:35:54.450 に答える
0
  1. Expressエディションを使用していない限り、実行中のプロセスにVisualStudioをアタッチできます。
  2. tp.dllを含むフォルダにコピーしますmy.dll
于 2012-10-11T20:56:19.767 に答える