2014-03-03 40 views
0

所以我試圖修改Compact Framework來導出C函數。 它在Full Framework上工作正常。使用ilasm.exe創建Compact Framework DLL彙編程序

這裏描述了使用的方法。 https://sites.google.com/site/robertgiesecke/Home/uploads/csharpprojecttemplateforunmanagedexports

無論如何,這個問題似乎是,如果我採取一個精簡框架Dll反彙編它,然後重新組裝它似乎重新組裝它作爲一個完整的框架DLL。

任何想法,我可以得到它重新組裝爲一個精簡框架DLL。

+0

爲什麼你不使用單獨的DLL爲你的互操作? –

+0

因爲它的插件類型DLL需要導出爲C函數。它在Windows CE上不支持託管C++ – CathalMF

回答

0

沒有合理的方法來做到這一點。

Compact Framework編譯器支持C#和VB.NET。儘管在一些實驗中可以生成一個程序集,但從未支持託管C++。問題在於CF不支持.NET通常使用的所有操作碼,因此即使您設法爲CF目標構建它,也無法保證它不會放入不受支持的操作碼( CF編譯器爲你做這個過濾)。

你的另一個問題是本機代碼(無論是加載你的DLL)不能在緊湊的框架中託管CLR - EE託管的管道根本不存在於託管應用程序進程之外。因此,即使如果以某種方式獲得了您的DLL編譯,導出入口點並且沒有任何無效的操作碼,本地進程將無法啓動EE來加載程序集中的託管位。