winapi – 在Windows RT中从桌面应用加载“comctl32.dll”失败
使用
http://forum.xda-developers.com/showthread.php?t=1944675中描述的方法,我使用Windows RT在我的表面执行了win32桌面应用程序.
可以使用LoadLibrary加载像user32.dll,kernel32.dll,gdi32.dll等的Windows dll. GetLastError()返回的错误代码是1114.这意味着“动态链接库(DLL)初始化例程失败.” 编辑: 示例代码: HMODULE hModule; hModule = LoadLibraryA("user32.dll"); printf("Load Library user32.dll : %x with Err: %xn",hModule,GetLastError()); hModule = LoadLibraryA("kernel32.dll"); printf("Load Library kernel32.dll : %x with Err: %xn",GetLastError()); hModule = LoadLibraryA("comctl32.dll"); printf("Load Library comctl32.dll : %x with Err: %xn",GetLastError()); 解决方法
您认为comctl32.dll被“批准”的假设是错误的.它的所有导出函数都不在可以在Store应用程序中使用的winapi函数列表中.它唯一的用途是为常用控件提供一个实现,它们都不能在Store应用程序中使用.它只能用于桌面应用程序,您无法在Windows RT上自行编写. Microsoft没有理由让comctl32.dll在Store应用程序的沙箱中工作.因此预计它将无法工作. 可以加载kernel32和user32,这些DLL确实包含已批准的winapi函数.但是,使用未在批准列表中的任何功能将使您在验证测试中失败.你不能发布这样的应用程序. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |