Я нашел этот Как экспортировать методы C #? ответ, который частично решил мою проблему, т.е. я использовал этот шаблон https://sites.google.com/site/robertgiesecke/Home/uploads#TOC-Version-1.1.3 (как предложено SLaks) для вызова моей dll в нативном коде C ++.
Я сталкиваюсь с двумя проблемами при использовании этого шаблона неуправляемого экспорта, я не могу точно сказать, были ли они вызваны этим шаблоном или они должны что-то делать с совместимостью C # и C ++.
Первая проблема заключалась в том, что, когда я пытался вызвать функцию .NET DLL стороннего производителя из моей .NET DLL, которая, в свою очередь, вызывалась собственным кодом C ++, он выдал ошибку:
Собственный C ++ -> MyDLL (.NET DLL) -> ThirdParty.NET DLL
Я нашел решение здесь Проблема в использовании .net dll из c ++ dll через слой c ++ / cli Я должен был подписать мою DLL.
Теперь вторая проблема:
Когда я пытаюсь сделать то же самое со службой WCF, то есть, добавив ссылку на службу WCF в MyDLL, инициирующую ее и вызывающую функции, программа завершается на C ++ end
Собственный C ++ -> MyDLL (.NET DLL) -> Ссылка на службу WCF
Я даже пытался сделать это, и это работало до AnotherDLL (которое было подписано), но не работало на WCF
Собственный C ++ -> MyDLL (.NET DLL) -> AnotherDLL (.NET DLL) -> Справочник службы WCF
До сих пор я обнаруживал, что всякий раз, когда я пытаюсь что-либо инициализироватькласс из службы WCF (Service Client, класс DataContract, который он нарушает).
Если у кого-то есть идея, я бы очень ее оценил, и какой еще подход был бы лучшим для этой проблемы.
Спасибо