2014-03-04 52 views
1

我有一個使用舊VB6開發的應用程序,該應用程序作爲獨立應用程序運行,但現在我已在C#中爲我們的產品實施了新許可過程。使用C#容器應用程序運行VB6 Exe項目

現在的問題是,將那些舊的VB6行遷移到.NET幾乎是不可能的,因爲它們會產生大量的錯誤並且調試將需要幾年的時間。

控制舊項目許可的技巧可以通過驗證許可證的容器應用程序來完成,然後使用一些安全的命令行參數執行舊的vb6 exe。

我的問題是 - 有沒有其他方式做到這一點?還有什麼加密系統可以在vb6和c#中使用(目前有128位AES)?

+0

就可以了部分對於VB6的EXE知道它已經由容器推出沒有絕對安全的方式。用戶可以將調試器附加到VB6 exe並查看命令行參數。 Windows大師Ray Chen [在此處寫道](http://blogs.msdn.com/b/oldnewthing/archive/2014/02/21/10501953.aspx)。嘗試在C#中創建一個授權DLL,並按照以下答案中的建議從VB6中調用該DLL。 – MarkJ

+0

我正在嘗試創建COM Interop註冊DLL,但是我的代碼有註冊表讀寫和編譯器給出關於拒絕訪問註冊表IO類的錯誤,不知道爲什麼! – seopower

回答

2

您可以將您的C#許可代碼作爲可視化COM的dll。 這是通過在AssemblyInfo.cs文件中將ComVisible屬性更改爲true來完成的。

用RegAsm.exe註冊.dll後,您將能夠從VB6調用您的C#代碼。

3

你需要什麼叫做COM Interop。基本上可以在.NET中創建程序集,然後像註冊ActiveX DLL一樣註冊它(雖然方法有點不同),並從VB6調用。

This answer有合理的運行下來,或者出現在MSDN here

+1

+1換句話說,創建一個包含許可代碼的C#DLL,並通過COM interop從VB6調用它。 – MarkJ

相關問題