Как: использовать проекты C ++ для Windows Phone (C #)

Теперь у меня есть несколько C ++ DLL и их исходный код.
Это управляемые библиотеки DLL, и я могу напрямую добавить их в проект C # в качестве ссылки. Вопрос в том, что теперь я хочу использовать их в приложении Windows Phone (C #).

Я не знаю как этого добиться, помогите пожалуйста

Я просто ничего не знаю об этих проектах C ++, и они содержат много заголовочных файлов. Нужно ли переписывать эти коды, чтобы они подходили для Windows Phone? Это будет грустная история ..

Или мне просто нужно перекомпилировать их как проекты разных типов?

Спасибо за вашего пациента

-4

Решение

Не уверен, как Windows Phone C # делает это, но обычный C # может:

а) Загружать символы непосредственно из библиотеки C, например:

using System;
using System.Runtime.InteropServices;
static class win32
{
[DllImport("kernel32.dll")]
public static extern IntPtr LoadLibrary(string dllToLoad);

[DllImport("kernel32.dll")]
public static extern IntPtr GetProcAddress(IntPtr hModule, string procedureName);

[DllImport("kernel32.dll")]
public static extern bool FreeLibrary(IntPtr hModule);
}

(это взято из: http://www.andyrushton.co.uk/csharp-dynamic-loading-of-a-c-dll-at-run-time/ после недолгого гугля)

Для этого вам нужно экспортировать методы интерфейса C ++ как «C», например:

extern "C" __declspec( dllexport ) int MyFunc(long parm1);

(из MSDN: http://msdn.microsoft.com/en-us/library/wf2w9f6x.aspx)

б) Используйте оболочку в C ++ / CLI для подключения неуправляемого C ++ к управляемому C #:

вот хороший пример: http://www.codeproject.com/Articles/19354/Quick-C-CLI-Learn-C-CLI-in-less-than-10-minutes

Обратите внимание, что синтаксис на первый взгляд несколько странный, и не может быть использовано все. Тем не менее, вы получаете возможность использовать классы C ++ — то, что экспорт «C» запрещает вам делать.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]