1

win32 APIを使用しているライブラリ(たとえばy.dll)に動的にリンクしているCOM in-proc Server(dll)(たとえばx.dll)を作成しました。Windows8デスクトップアプリとメトロアプリから起動した場合、同じwin32APIの動作が異なることがわかりました。

COM in-proc Server dll(x.dll)がデスクトップアプリから読み込まれると、library(y.dll)内のすべてのwin32 APIが正常に機能しますが、metroAppsからx.dllが起動されると、y内のすべてのwin32APIが動作します。 dllが失敗しています。

これはWindows8win32APIのデフォルトの動作ですか?デスクトップとMetroAppsの両方から起動できるdllでのwin32APIの使用に関連するドキュメントを誰かが私に提供してくれるといいでしょう。

ありがとうございました

4

1 に答える 1

1

Windowsストアアプリで使用できるのは、WindowsAPIのサブセットのみです。各API関数のMSDNドキュメントでは、関数をデスクトップアプリから呼び出すかWindowsストアアプリから呼び出すかを指定しています。たとえば、次のドキュメントの下部に次のように表示されますGetProcAddress

サポートされる最小のクライアント WindowsXP[デスクトップアプリ| Windowsストアアプリ]

この関数は、デスクトップアプリとWindowsストアアプリの両方から呼び出すことができます。関数がWindowsストアアプリでサポートされていることを示さない場合、Windowsストアアプリから呼び出されない可能性があります。たとえばLoadLibrary、Windowsストアアプリから呼び出すことができるとは言わないため、呼び出すことはできません。(サポートされていない関数を呼び出す方法はありますが、そうすると必然的に未定義の動作が発生することに注意してください。)

また、Windows Storeアプリは低い権限で実行され、システムへのアクセスが制限されていることに注意してください。

于 2012-12-05T06:38:53.430 に答える