Самый простой способ сделать это - выставить C# DLL как COM-объект, а затем создать экземпляр из своего приложения C/C++. См. MSDN для пошагового руководства.
С другой стороны, если на самом деле это приложение C++, что вы хотите быть в состоянии назвать C# DLL из, вы можете создать смешанного режима C++/CLI приложений, который содержит как управляемый и неуправляемый код. Затем приложение C++ может вызывать функции непосредственно из управляемой C# DLL.
Также см. "An Overview of Managed/Unmanaged Code Interoperability" на MSDN.
EDIT: Без дополнительной информации, чем «она не работает в C,» Я даже не знаю, какие из указанных выше предложений, которые вы пробовали. Как я и предположил, я не уверен, что второй будет работать с прямым C (никогда не пробовал), но я не вижу причин, почему первый не будет.
Независимо от этого, быстрое и грязное исправление может заключаться в том, чтобы обернуть функции C# в C++ DLL, которые вы затем вызываете из своего приложения C. Убедитесь, что вы объявляете какую-либо из функций, которые вы хотите экспортировать из C++ DLL, как extern
, в противном случае их имена будут искажены именами C++, с которыми невозможно работать с C. См. Здесь для получения дополнительной информации: http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html
Я сделал это работать на C++, DONOT понять, как использовать в C, Не удалось найти способ заставить его работать. Использование его в C является ключевым для меня медальем – 2010-11-30 13:17:34
Пример кода от ВАС того, что вы уже пробовали, должно быть хорошей помощью. – 2010-11-30 15:23:54