Setting up Cocos2dx project with QtCreator on Windows using LLVM - stl

I've been tasked with porting a MacOS project to Windows 10.
It consists of modified Cocos2dx library which is built as a part of the the project. The library contains several objective-c++ files, so I'm forced to use LLVM.
However, LLVM doesn't come with standard c++ library which Cocos2dx uses. I've tried pointing to MinGW include directory, I've tried installing Visual Studio and pointing to it's STL include folder, but there was always something missing.
How do I properly include STL in my project? Where do I get it?

I ended up installing Visual Studio with Win10 SDK. I then used win32-clang-msvc mkspec. The STL was included with Win10 SDK.

Related

AIR Native Extension issue

I built an AIR native extension with following setup:
Visual studio 2005 for building my dll
Flash CS6 IDE with AIR SDK 3.2 to create SWC from my AS3 source
The namespace version of my ANE is 33.1
ADT (AIR SDK 33.1)
I tested the ANE with FlashDevelop 5.3.3.1 and the ANE works as expected on a machine that I use for development. However, when I test the same ANE in FlashDevelop on a different machine, the AIR can't find a necessary method in the native side implementation (Error code #3500). I am using the same version of FlashDevelop with same AIR SDK (33.1) in both machines.
It seems that for some reason AIR could not load the dll in second machine (but does so in my development machine), and I am not sure why. Any help would be highly appreciated.
Thank you.
You are probably missing some of the dependency dlls, most likely part of the vc++ redistributable package or potentially .net if you are using any of that functionality.
Try to install the VC++ redist on your test machine:
https://support.microsoft.com/en-us/topic/the-latest-supported-visual-c-downloads-2647da03-1eea-4433-9aff-95f26a218cc0

Compile Windows DLL for WP8

I've got the c# source for a DLL that works on windows 8... I would like to use it in a windows phone 8 application. Is there an easy way to change the target platform of the project to WP8 and then compile for that? I assume it will have to be compiled as a Windows Phone Class Library but that should be fine. I'm using VS2013.
Well it depends on the library. If it has any dependencies to the full .net framework, it will most likely not work. If its just a generic Library, you should be able to make a new Windows Phone Class Library Project and copy over the source.
I guess, you'd simply have to try that. Maybe you can bypass some of the dependencies and rewrite these sections with Windows Phone compatible code.

Cant use NuGet to add Unity IoC to a portable class library

I am making a Windows Phone 8 application, however because I would like at some point to also publish this application for Windows 8.1 store I made the effort to factor out the application logic into a portable class library. All good so far.
Now being a good boy I want to use an IoC container, unity by preference (since I am familiar with it in desktop and Win Phone 8 only apps)
So here's my problem; the NuGet Unity package will not install into my portable application with this result:
Installing 'Unity 3.0.1304.1'.
Successfully installed 'Unity 3.0.1304.1'.
Adding 'Unity 3.0.1304.1' to Logic.
Uninstalling 'Unity 3.0.1304.1'.
Successfully uninstalled 'Unity 3.0.1304.1'.
Install failed. Rolling back...
Could not install package 'Unity 3.0.1304.1'. You are trying to install this package into a
project that targets 'portable-net45+wp80+win', but the package does not contain any assembly
references or content files that are compatible with that framework. For more information,
contact the package author.
So is there a unity that works with a PCL? or is this just a shortcoming of the NuGet package?
I failed to find any useful documentation on the P&P website to indicate what platforms it is compatible with, but I know it does support WP8 at the least since the NuGet package is quite happy with libraries targeting just that.
Any guidance from the community would be very welcome here I don't want to abandon using a PCL for my app logic if I can avoid it, but if it comes down to a toss up between that and NuGet for package management I will in order to keep the NuGet goodness.
Could this be related to NuGet and Portable Class Libraries - Package doesn't target any framework? that seems more related to making your own NuGet packages for use in your own PCLs.
Unity 3.0.1304.1 does not contain any PCL assemblies so you will not be able to install it into a PCL project using NuGet.
The Unity NuGet package contains assemblies that target the following frameworks:
.NETFramework 4.5
.NETCore 4.5 (Windows Store/WinRT)
Windows Phone 8
You can see these target frameworks if you open the NuGet package into NuGet Package Explorer or download the NuGet package and open it using a program that supports zip files such as 7zip or Windows built-in zip file support.
So your possible options are:
Just use Unity in your main Windows Phone 8 application.
Write your own IOC container.
Use an IOC container that supports PCL projects such as Portable.CommonServiceLocator.
Compile your own PCL version of Unity.
Use a later version of Unity 3.5 since this includes a PCL assembly targeting portable-net45+wp80+win8+MonoAndroid10+MonoTouch10
Updated: 2014-05-11
Unity 3.5 now includes a PCL assembly that targets portable-net45+wp80+win8+MonoAndroid10+MonoTouch10 which will install into a project that targets portable-net45+wp80+win.
There is no Unity for PCL, but you can use Ninject for example.

Compiling sqlite-winrt for using SQL in WinRT/WP app with SQLite

I'm trying to use the sqlite-winrt library at https://sqlwinrt.codeplex.com (cf. http://blogs.windows.com/windows_phone/b/wpdev/archive/2013/05/30/sqlite-winrt-wrapper-for-windows-phone.aspx) because I need to access an SQLite database via SQL commands in a WinRT 8.1 and a WP8 app and this library seems the only available option.
Anyway, there is no binary release and if I try compiling the source I get several link errors for unresolved externals against the SQLite DLL. I posted an issue at codeplex but got no reply yet, so I was wondering if anyone had already managed to successfully compile this lib and how (or if you know of any viable alternative for RT8.1 and WP8). Here is what I did:
downloaded the latest source from the site.
downloaded and installed 2 VSIX from http://www.sqlite.org/download.html: sqlite-winrt81-3080002.vsix for RT 8.1 and sqlite-wp80-winrt-3080100.vsix for WP.
executed the powershell scripts in each subfolder of the source code solution, which are required to update the projects with newer releases of the SQLite for WinRT extension. The current versions of the scripts refer to SQLite for WinRT 8.1 (prerelease) which is the same I downloaded above.
opened the VS2013 solution and removed the RT project (I just need RT8.1 and WP, this was for WinRT 8.0).
5) built the solution, which failed with link errors.
If I see the RT8.1 project properties, I can confirm the reference to SQLite is under C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1\ExtensionSDKs\SQLite.WinRT81\3.8.0.2.
Did anyone manage to use this lib? Thanks!
I also once had that problem. I fix it by editing the project file manually. At that time, the powershell script updating the wrong path. That's why I always failed when compiling my project. After I edit the project file using external text editor (I use sublime text), the projects are linked correctly.
You can try DatabasesCx. It is another SQLite Wrapper using Windows Runtime Component technology. It is freeware distributed as precompiled binary. You can find the details at http://www.almanacsoft.com/databasescx

I'm getting build errors when using MvxEventToCommand within a WP8 project

I'm using the MvvmCross framework to create a windows phone 8 project.
In my WP8 project within the xaml I have the following:
<i:Interaction.Triggers >
<i:EventTrigger EventName="Tap">
<Commands:MvxEventToCommand Command="{Binding OnItemTappedCommand}" />
</i:EventTrigger >
</i:Interaction.Triggers>
My namespaces are as follows:
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
and
xmlns:Commands="clr-namespace:Cirrious.MvvmCross.WindowsPhone.Commands;assembly=Cirrious.MvvmCross.WindowsPhone"
When I attempt to build I get the error:
Cannot resolve dependency to assembly 'System.Windows.Interactivity, Version=3.8.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' because it has not been preloaded. When using the ReflectionOnly APIs, dependent assemblies must be pre-loaded or loaded on demand through the ReflectionOnlyAssemblyResolve event.
Looking in ILSpy I can see that Cirrious.MvvmCross.WindowsPhone.dll references this dll but I only have version 3.9.5.0 available in my assembly references list within my project.
I've tried adding an assembly redirect in my app.config but I think that's more for runtime resolution then for build errors.
What's the best way to resolve this issue?
Thanks
-- EDIT --
I've managed to resolve this issue by finding a WP7.1 version of the System.WindowsInteractive.dll which is version 3.8.5.0. My project is definitely targeting the Windows 8.0 phone OS.
Could this be a problem with the Nuget packaging of MVVMCross?
Just to answer this question since I came across this problem today...
I had a fresh install of Windows 8.1 and the Windows Phone 8 SDK. My sln would build but when MvvmCross resolved the plugins on start-up it would crash with a ReflectionLoadTypeException - the LoaderExceptions property contained a single entry - it was unable to find System.Windows.Interactivity, despite being referenced from the extensions list in the reference manager for the project.
The solution was to install the Windows Phone 7 SDK and grab the Windows Phone 7 version from C:\Program Files (x86)\Microsoft SDKs\Expression\Blend\Windows Phone\v7.1\Libraries\System.Windows.Interactivity.dll.