我有一個VB6項目編譯爲VB6 exe。VB6/.NET窗體互操作
它有一個簡單的形式作爲其啓動對象。
它通過regasm'd .NET dll啓動一個.NET模式窗體,並將其傳遞給一個回調COM接口(IHandler)的實現。
.NET回調到VB6中的IHandler實現。
VB6嘗試使用vbModal顯示新窗體。由於仍然可見的模式.NET窗體阻止了VB6窗體之間的交互。
有沒有解決方法或建議的方法?我試圖調用VB6在一個新的(STA)(託管)線程,但是當它試圖做MyCallbackForm.Show vbModal時,我得到「無效的過程調用或參數。」...我認爲必須與事實,我打電話回來一個新的線程...
更新:我能夠成功地在新線程回調,並顯示我的VB6表單模態如果我設置我的VB6項目類型爲ActiveX exe ...但一旦我這樣做了,我似乎失去了回調線程 - 從VB6到.NET的後續調用導致了跨線程異常。我猜這與使用ActiveX exe時的線程模型有關......
問題是沒有顯示.NET窗體,它是一旦我以模態顯示它,VB6回調無法捕獲用戶交互 – Jeff