我們需要創建一個Shell命名空間擴展。我在2005年離開了Windows編程,那時我不得不創建簡單的外殼擴展,但構建了非常複雜的COM服務器(進程內和進程外)和桌面應用程序。我們使用ATL和MFC庫。Shell命名空間擴展。 C#。 C++,MFC,AT-使用什麼?
時間已過,現在我需要回到視覺工作室/ windows編程。我希望能夠忘記所有關於ATL,MFC和C++的知識,用C#在CLR中創建應用程序。
我記得很難找到優秀的ATL/MFC開發人員,而且大部分時間我都需要完成整個工作。所以我現在想象一下,在.NET時代,找到可以幫助我的ATL/MFC開發人員真的不可能。
而且我剛看到這個MSDN Library中: http://msdn.microsoft.com/en-us/library/dd758089%28v=VS.85%29.aspx
「微軟建議不要編寫託管外殼擴展,不考慮他們支持的方案」 -
哦不,不,不...我很興奮,並期待着使用C#,WindowsForms甚至WPF,他們說我不能。
因此,如果我想創建一個Windows非託管C++應用程序,唯一的選擇是MFC/ATL? 6年來的確沒有任何改善,這是真的嗎?所以我必須使用相同的舊技術?
我現在在Visual Studio 2010中尋找一個更好的選項,看起來對於C++非託管應用程序,我們仍然需要使用MFC或ATL。我的問題是如果這真的是唯一的方法。
現在我們假設我們必須使用舊的MS庫,並且Shell擴展都是關於COM接口的,我認爲更好的選擇是ATL。
但也許我們需要包括一些窗口和一些用戶界面控件。我記得你可以將MFC支持添加到ATL項目或對MFC項目的ATL支持。我知道我從事這種事情,但很久以前。你能告訴我什麼是更好的選擇。
非常感謝,來自Java愛好者的 和C++的懷舊感。
正如您已經發現的那樣,Microsoft在.NET中不支持在.NET中執行外殼擴展。我會用ATL去...... –
@ K-ballo:在外殼擴展中使用CLR不僅僅是不被支持,而且也是潛在的危險,因爲它可能會將CLR注入到其他使用公共文件對話框的毫無疑問的應用程序中。 –
@JörgenSigvardsson:包括運行在不同版本的.Net上的其他.Net應用程序......以BOOM結尾 – Brook