Tag: win universal app

未处理的exception0xC0000008:在动态重新编译器中指定了无效的句柄

代码是MIPS-> ARM动态重新编译器。 在运行recompile_function()多次之后,它会在下面代码的条件子句中崩溃,尽管在早期的函数运行期间它可以运行这行代码而没有任何问题。 void recompile_function(){ //recompilation code …… if (out > (u_char *)((u_char *)base_addr + (1 << TARGET_SIZE_2) – MAX_OUTPUT_BLOCK_SIZE – JUMP_TABLE_SIZE)) out = (u_char *)base_addr; // other code …… } 变量输出是用于编写重新编译代码的指针。 base_addr始终指向已分配内存空间的原始开始。 每次写入指令时,变量输出进行4个字节,而base_addr保持不变。 extern char extra_memory[33554432]; #define BASE_ADDR ((int)(&extra_memory)) void *base_addr; u_char *out; void new_dynarec_init() { protect_readwrite(); base_addr = ((int)(&extra_memory)); out = (u_char *)base_addr; […]

动态生成的代码在错误的地址中执行

这是一个UWP应用程序。 我在ARM / Release版本中遇到此问题。 变量指向extra_memory,其中每次在重新编译之前由protect_readwrite更改内存的保护,并且每次在执行重新编译的代码之前由protect_exec更改。 基本上extra_memory是我们重新编译代码的地方。 首先,在调用new_dynarec_init以将extra_memory的保护更改为读取和写入之后,输出指向extra_memory的指针,以便我们可以使用out作为执行重新编译代码的入口点。 new_recompile_block是执行重新编译的函数,从函数new_dyna_start调用。 extern char extra_memory[33554432]; #define BASE_ADDR ((int)(&extra_memory)) void *base_addr; u_char *out; void new_dynarec_init() { protect_readwrite(); base_addr = ((int)(&extra_memory)); out = (u_char *)base_addr; } int new_recompile_block(int addr) { //if(g_cp0_regs[CP0_COUNT_REG]==365117028) tracedebug=1; protect_readwrite(); //the recompiling code here …… protect_exec(); return 0; } void protect_readwrite() { #if NEW_DYNAREC == NEW_DYNAREC_ARM PVOID addr […]

跨CPU体系结构从Windows 10 Universal App引用C Dlls

基本问题/摘要:我需要从Win 10通用应用程序项目中引用C中其他人创建的二进制文件(dll)。 但是,x86和arm有一个单独的dll。 我相信我需要从项目中引用dll(或至少是winmd文件)来部署它,但我只能引用一个文件而不是两个文件。 这意味着应用程序在一个平台或另一个平台(桌面或电话)上失败,因为它包含错误的二进制文件。 寻找解决方案。 更详细的解释; 我正在尝试编写通用Windows应用程序(新的Windows 10样式)。 这意味着我有一个项目可以添加对外部组件的引用。 我需要一些图像处理的东西,最好作为第三方组件购买,而不是在内部开发。 有三个SDK可以从支持WinRT的第三方获得,但没有一个专门支持UWA。 但是,WinRT SDK对Windows Phone和Windows桌面应用程序都有不同的二进制文件。 二进制文件都是从C / C ++源代码创建的。 对于较旧的“通用”应用程序来说这很好,因为有一个单独的电话和桌面项目,所以你可以在每个项目中引用不同的组件,但现在只有一个项目可以添加引用。 我问过一家供应商有关UWA的支持,他们声称这是不可能的,他们无法创建一个二进制文件来定位两个平台(arm vs x86),他们不知道我的UWA在应用程序时引用正确文件的方法是为适当的架构而构建的(这是我认为应该发生的)。 我假设有一些问题(也许是在一个winmd文件中?),’嘿,这里是不同CPU体系结构的相同dll的两个副本,选择你正在构建的那个’并且只要公共API与app匹配只是使用正确的? 这有解决方案吗? 有谁知道这种引用应该如何工作? 或者我只是运气不好? 谢谢。