2013-11-28 166 views
1

在我的VS2012 C#項目中,我使用VC6編寫的ActiveX EXE代碼通過它的自動生成的程序集等效,我想,當TLBIMP.exe被引用時我的C#項目。COM Interop VB6 ActiveX EXE

執行代碼時,我看到在單獨的進程中啓動的ActiveX EXE,並在終止引用它的C#代碼時終止。

它看起來像我期望的那樣工作,但我很難找到可以從中休息的文檔,以確保它是C#項目中ActiveX EXE的正確用法。

任何人都可以提供一些建議嗎?

+0

是的,這是正確的。 – MarkJ

+0

謝謝。 @MarkJ – hanishi

回答

2

這是一個好兆頭,您可以看到進程正在運行。證明成功並獲得100%信心的一種非常簡單的方法是將日誌記錄添加到VC6 EXE中,並檢查日誌以確保日誌的行爲與您期望的一致。例如,如果您的VC6 exe收到命令行參數,您可以記錄它們的內容,以確保您從C#程序正確執行它。如果您無法更改VC6 EXE,則只剩下黑匣子測試:使用特定輸入,您是否獲得預期輸出?我想你可以使用更好的方法和更耗時的方法,但如果我的建議足夠,你可能不需要。

+0

謝謝@clairestreb – hanishi

+0

我敢肯定,這是從Visual Studio中引用ActiveX.EXE作爲COM組件的正確用法。我仍然看到的唯一問題是即使在引用它的進程終止後,ActiveX.EXE仍然存在。你有任何線索嗎?它爲什麼會保持下去? – hanishi

+1

@hanishi 1)你說過:「當代碼執行時,我看到ActiveX EXE在一個單獨的進程中啓動,並在C#代碼被終止時終止。」在你的問題中,所以你的新評論與此衝突。這是什麼? 2)如果它沒有終止,我想你應該發佈一個新問題並顯示你用來啓動EXE的代碼。但是,也許這將有助於:http://stackoverflow.com/questions/7322024/starting-and-stopping-a-process-in-c-sharp-net – clairestreb