0

そのため、Compact Framework を変更して C 関数をエクスポートしようとしています。フルフレームワークで問題なく動作します。

ここで使用されている方法が説明されています。https://sites.google.com/site/robertgiesecke/Home/uploads/csharpprojecttemplateforunmanagedexports

とにかく問題は、Compact Framework Dll を逆アセンブルしてから再アセンブルすると、Full Framework Dll として再アセンブルするように見えることです。

コンパクト フレームワーク DLL として再アセンブルする方法を教えてください。

4

1 に答える 1

0

これを実現する合理的な方法はありません。

Compact Framework コンパイラは、C# と VB.NET をサポートしています。マネージ C++ はサポートされませんでしたが、一部の実験ではアセンブリを生成することができました。問題は、.NET が一般的に使用するすべてのオペコードを CF がサポートしていないことです。そのため、CF ターゲット用にビルドできたとしても、サポートされていないオペコードが挿入されないことを保証する方法はありません ( CF コンパイラがこのフィルタリングを行います)。

もう 1 つの問題は、ネイティブ コード (DLL をロードしているものは何でも) がコンパクトなフレームワークで CLR をホストできないことです。EE ホスティングの配管は、マネージ アプリケーション プロセスの外には存在しません。したがって何らかの方法で DLL をコンパイルし、エントリ ポイントをエクスポートし、無効なオペコードがない場合でも、ネイティブ プロセスは EE をスピンアップしてアセンブリ内のマネージ ビットをロードする方法がありません。

于 2014-03-04T17:23:23.340 に答える