我有一个32位(x86)侧装Windows Store app
,与代理的Windows运行时组件一起工作,它工作顺利,可以启动桌面EXE,使用加载桌面DLL反射等64位侧装应用程序使用Brokered Windows运行时组件
我想使这个侧装应用程序64位。在将应用程序重新构建为x64后,它不能再次使用代理的Windows运行时组件。该错误是
Additional information:
Unable to cast COM object of type 'StoreAppBrokeredWindowsRuntimeComponent.DirectInvoker' to interface type 'StoreAppBrokeredWindowsRuntimeComponent.IDirectInvokerClass'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{50EA3FD3-2383-5445-4002-8CBCBED5DB0F}' failed due to the following error: Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
从DOC Brokered Windows Runtime Components for a side-loaded Windows Store app,
Side-loaded applications can be 64-bit (provided there is both a 64-bit and 32-bit proxies registered), but this will be atypical.
问:
如何建立一个64位的代理?
VS template只能建立32位(Win32)代理。如果将WindowsRuntimeProxyStub
更改为x64,则甚至无法编译 - 有一堆LINK错误。
所以32位侧载应用程序,32位的Windows斡旋运行时组件,和32位代理是只有工作方法为止。