4

データ ソースからデータを取得して vba/powerpoint ppa アプリケーションに渡すためのラッパーとして機能するように記述された ac# dll があります。私はvbaの経験があまりないので、vb6を使用してこれをシミュレートしていますが、これについては少し詳しく知っています。

私は現在、構文を理解しようとして十分な問題を抱えており、com と ccw の複雑な仕組みについては理解していません。そのため、関数がデータを返さない理由をデバッグする方法を探しています。可能であれば、vb6 アプリが呼び出しているときに .net dll の行ごとのウォークスルーを用意しています。

最初は、外部ファイルに書き出す.net dll内に関数を入れることを考えましたが、それは機能していないようで、理由がわかりません。

グーグルで調べたところ、私の場合に役立つプロセスへのアタッチがあることがわかりましたが、その機能はvs studio フルバージョンでのみ使用できます

だから私は、vb6/vbaアプリと.net dllの間で何が起こっているのかを適切にデバッグできる他のツール、メソッドがあることを願っています。

ありがとう。

4

4 に答える 4

7

残念ながら、プロセスへのアタッチは利用できません。それが進むべき道だからです。

.net dll にウェルを配置Debug.Assert(false);することは、デバッガーを強制的に表示させる 1 つの方法です。

ブレークポイントを強制するかを試しDebugger.Break();て、デバッガーをアタッチするかどうかを尋ねることもできます。

Debugとの両方DebuggerSystem.Diagnosticsネームスペースにあります。

于 2009-08-18T03:31:04.920 に答える
3
  1. C# プロジェクトの Visual Studio でプロジェクト プロパティを開きます。
  2. デバッグページに移動します。
  3. [外部プログラムの開始] を選択し、VB.exe を参照します (ほとんどの場合、C:\Program Files\Microsoft Visual Studio\VB98\VB6.EXE.
  4. オプション: コマンド ライン引数に VB6 プロジェクトの .vbp ファイルへのパスを入力します。

C# プロジェクトを実行すると (Debug->Start Debugging または F5)、VB6 が起動します。C# プロジェクトには任意のブレークポイントを配置できます。VB6 プロジェクトを開始すると、デバッガーは VS2005/2008 ブレークポイントで停止します。また、イミディエイト ウィンドウや、C# プロジェクトをデバッグするときに使用するその他のデバッグ オプションを使用することもできます。

于 2009-08-19T00:15:50.900 に答える
2

これを追加

<StartAction>Program</StartAction>
<StartProgram>C:\Program Files\NUnit-Net-2.0 2.2.8\bin\nunit-gui.exe</StartProgram>

C# Express 2008 プロジェクトの .csproj ファイルの PropertyGroup 要素の下に、うまくいきました (詳細はこちら)。

于 2011-09-23T10:49:43.333 に答える
0

Visual C# Express Edition の上に Visual C++ Express Edition をダウンロードしてインストールします。どちらも完全に無料で、デバッガーで「プロセスにアタッチ」することができます。

于 2010-01-15T09:21:19.767 に答える