1

我知道你不应该这样做,但不幸的是,考虑到 WinRT 库的初期和缺乏对 3rd 方控件的支持,我没有其他可能的解决方案,只能尝试使用我们当前的图表库地铁应用。

我们无意通过 App Store 分发该应用程序。我们手动选择并加载我们的应用程序以供客户使用。

我看过一些文章,其中可以通过手动加载适用的 DLL 来成功地从 Metro 应用程序内部手动调用 MessageBoxA,这些 DLL 在系统上仍然可用。

我们的图表控件作为 COM DLL 分发。如果我尝试正常连接 Metro,Metro 会爆炸,这是我所期望的。

我很好奇是否有任何方法可以从 Metro 应用程序中手动调用此 DLL?

4

1 回答 1

0

我自己没有对此进行测试,但我认为它可能会起作用:

如果您对在 Windows 应用商店中发布您的应用程序不感兴趣,您可以尝试将您的 COM DLL 包含在您的应用程序包中,并手动实例化您的 COM 对象。

该过程在这篇文章中进行了解释。它基本上是关于使用LoadLibraryGetProcAddress来检索DllGetClassObject每个 COM dll 包含的函数,并使用 COM 类的 GUID 来获取实例。

在您的情况下,如果您将项目创建为 Windows 应用商店应用程序,则功能 LoadLibrary 将不可用,但您仍然可以改用LoadPackageLibrary

于 2012-10-09T19:03:50.410 回答