Page 1 of 1

using C# API from a 64 bit app

Posted: 27 Apr 2015, 19:34
by darthmaule2
After I got a small set of xaml and C# code behind working in the C# API Demo program, I started trying to integrate the xaml/C# into my application.

My application is a C# program that makes use of an x64 Native C++ dlls to show live video using DirectX11.

I added the Demo App's NoesisGUI project to my solution. I gave it an x64 configuration.
I added my own NoesisGuiExtensions project (my xaml and C# code behind) to my solution, with an x64 configuration.

I made sure that NoesisGUI.dll and Noesis.dl are in the execution directory.

Once my C# application receives the ID3DDevice* from the native C++ code, it calls InitDX11, which throws and exception
       //Receive device object needed for initialization
        public void OnD3dDeviceAvailableEvent(object sender, IntPtr d3dDevice)
        {
            try
            {
                Noesis.GUI.InitDirectX11(d3dDevice);
I've tried placing different Noesis.dll files in the execution directory, and got different results.

1) Using the Noesis.dll file from the C# API Demo, found in NoesisGUI/NoesisGUI,
the exception indicates the dll is the wrong format. I'm thinking this dll is 32 bit to match the GLUTWrapper Win32 project, which makes it incompatible with my x64 application.

2) I tried using the Noesis.dll from NoesisGUI-win-x86_64-1.2.2.zip. In this case, the exception is complaining about a missing entry point.
"Unable to find an entry point named 'SWIGRegisterExceptionCallbacks_NoesisGUI_' in DLL 'Noesis'."

Re: using C# API from a 64 bit app

Posted: 27 Apr 2015, 23:12
by sfernandez
I have just sent you a private message ;)