Hi, I have one simple game that I want to publish on Windows marketplace, but when I try to upload the xap I receive the following errors:
1028: The native API api-ms-win-core-synch-l1-2-0.dll:CreateEventExA() isn’t allowed in assembly libGLESv2_phone.dll.
Update it and then try again.
1028: The native API api-ms-win-core-interlocked-l1-2-0.dll:InterlockedCompareExchange() isn’t allowed in assembly libGLESv2_phone.dll.
Update it and then try again.
1028: The native API api-ms-win-core-synch-l1-2-0.dll:CreateMutexExA() isn’t allowed in assembly libcocos2d.dll.
Update it and then try again.
I’m having similar issue: 1028: The native API api-ms-win-core-synch-l1-2-0.dll:CreateEventExA() isn’t allowed in assembly libGLESv2_phone.dll. Update it and then try again. 1028: The native API api-ms-win-core-debug-l1-1-1.dll:OutputDebugStringA() isn’t allowed in assembly libcocos2d.dll. Update it and then try again. 1028: The native API api-ms-win-core-synch-l1-2-0.dll:CreateMutexExA() isn’t allowed in assembly libcocos2d.dll. Update it and then try again.
I have tested the app using open store kit, but it outputs exacly the same errors, without any information regarding their location in code. I managed to fix the ‘OutputDebugStringA’ error, but I couldn’t find files containing code referencing ‘CreateMutexExA’.
I don’t know what is this open store kit.
johnny english wrote
I find both the ‘OutputDebugStringA’ and the ‘CreateMutexExA’, but I don’t know how to correct it.
The CreateMutexExA is located in the synchapi.h file.
The OutputDebugStringA is located in the debugapi.h file.
this is part of the code from debugapi.h file
You don’t actually need to comment out these lines. In order to make the app compile, I found and commented the cocos2d-x code referencing these functions. I basically had to remove the code from the ‘addImageAsync’ function in CCTextureCache file and 2 lines in ‘CCLuaLog’ method of CCCommon file.
Removing the ‘CreateEventExA’ is more problematic as it is referenced by Sleep function in ThreadEmulation file of Angle project, related to rendering. Nevertheless, I’ve commented it out anyway. It works on simulator, but I don’t have any WP8 device to test it.
If there is a nicer way of doing it like changing preprocessor config or sth, please post it here.
1028: The native API api-ms-win-core-interlocked-l1-2-0.dll:InterlockedCompareExchange() isn’t allowed in assembly libGLESv2_phone.dll. Update it and then try again.
How I can get rid of this InterlockedCompareExchange() method?
Hi, in my case I was able to get around this problem by changing:
CreateMutexExA() > CreateMutexExW
CreateEventExA> CreateEventExW()
>
and commenting out:
OutputDebugStringA()
can you tell which files did you change or how to find them
thx in advance
It’s not needed to change any code, take a look in the screenshots below, you only need to change your project from win32 to arm, and deploy to device option.
This will create a xap file that will not show any error when you try to publish windows phone store.
Click in the confiuration manager like it’s showed in the second picture and change win32 to arm.
In my case, it was UNICODE that wasn’t defined for libcocos2d preprocessor, because of which dll:CreateMutexExA was getting picked. For WP8, the call to use is dll:CreateMutexExW. This is governed by UNICODE parameter
Thanks for the suggestion
Its already configured as arm as you can see in the above image . Libcurl is the one coming out with the errors in latest version 3.4 . Any ideas ?