Похоже, существует несколько различных способов использования dll C# из неуправляемых C++ и C. Вот некоторые из кратких ответов: использование служб Interlope, Использование домена .com. и regasm, использование PInvoke (который, по-видимому, предназначен только для C# на C++) и использование IJW в C++/CLR (который, по-видимому, является службами Interlope). Я думаю, что было бы лучше создать библиотеку, которая, возможно, является оболочкой CLR, которая использует IJW для вызова моей библиотеки C# от имени собственного кода C++ и C.
Особенности: мне нужно передать значения string, а также int в dll C# из кода C++ и вернуть void.
Особенности: мне нужно передать значения string и int в dll C# из кода C++ и вернуть void.
Особенности: мне нужно передать значения string, а также int в dll C# из кода C++ и вернуть void.
Особенности: мне нужно передать значения string, а также int, в dll C# из кода C++ и вернуть void.
Особенности: мне нужно передать значения string, а также int в dll C# из кода C++ и вернуть void.
Особенности: мне нужно передать значения string, а также int в dll C# из кода C++ и вернуть void.
Особенности. >
Актуальность: Многие компании находят множество оправданий для смешивания и сопоставления C++, C и C#. Производительность: неуправляемый код обычно быстрее. Интерфейсы. Управляемые интерфейсы, как правило, легче поддерживать, развертывать и часто приятнее на вид, также говорят нам менеджеры. Устаревший код заставляет нас тоже. Оно было там (как гора, на которую мы поднялись). Хотя примеров того, как вызвать библиотеку C++ из C#, предостаточно. Примеры вызова библиотек C# из кода C++ сложно найти в Google, особенно если вы хотите увидеть обновленный код версии 4.0+.
Программное обеспечение: C#, C++/CLR, C++, C, Visual Studio 2010 и .NET 4.0
Подробности вопроса: Хорошо, вопрос из нескольких частей:
- Есть ли преимущество в использовании com-объектов? Или PInvoke? Или какой-то другой метод? (Я чувствую, что кривая обучения здесь будет столь же крутой, хотя я нахожу больше информации по этой теме в Google Land. Кажется, IJW обещает то, что я хочу. Должен ли я отказаться от поиска решения IJW и вместо этого сосредоточьтесь на этом?) (Преимущество/недостаток?)
- Правильно ли я полагаю, что существует решение, в котором я пишу оболочку, которая использует IJW в С++/CLR? Где я могу найти дополнительную информацию по этой теме, и не говорите, что я недостаточно гуглил или заглядывал в MSDN, не сообщая мне, где вы это там видели. (Думаю, я предпочитаю этот вариант, стремясь писать понятный и простой код.)
- Сужение круга вопросов: я чувствую, что моя истинная проблема и Необходимо ответить на следующий меньший вопрос: как настроить библиотеку C++/CLR, которую неуправляемый файл C++ может использовать в Visual Studio. Я думаю, что если бы я мог просто создать экземпляр управляемого класса C++ в неуправляемом коде C++, то я мог бы поработать и со всем остальным (интерфейсом, оберткой и т. д.). Я ожидаю, что моя главная глупость заключается в попытке настроить ссылки/#includes и т. д. в Visual Studio, хотя, очевидно, у меня могут быть и другие заблуждения. Возможно, ответом на все это может быть просто ссылка на учебник или инструкции, которые помогут мне в этом.
Ссылки:
Я перечитывал множество сообщений. Я постарался рассмотреть наиболее актуальные из них. Некоторые кажутся очень близкими к ответу, но я просто не могу заставить их работать. Я подозреваю, что то, что мне не хватает, дразнительно мало, например, неправильное использование ключевого слова ref, или отсутствие #include или оператора using, или неправильное использование пространства имен, или неправильное использование функции IJW, или отсутствие параметра, который VS необходимо правильно выполнить компиляцию и т. д. Вы задаетесь вопросом, а почему бы не включить код? Что ж, я чувствую, что нахожусь не в том месте, где понимаю и ожидаю, что код, который мне нужен, будет работать. Я хочу быть там, где я это понимаю, и когда я туда доберусь, возможно, мне понадобится помощь, чтобы это исправить. Я включу две ссылки случайным образом, но мне не разрешено показывать их все на моем текущем уровне здоровья.
http://www.codeproject.com/Articles /35437/Moving-Data-between-Managed-Code-and-Unmanaged-Cod
Это вызывает код из управляемого и неуправляемого кода в обоих направлениях, начиная с C++ и Visual Basic. и обратно через C++CLR, и, конечно, меня интересует C#: http://www.codeproject.com/Articles/990 ... e-and-vice
Подробнее здесь: https://stackoverflow.com/questions/132 ... li-and-ijw
Мобильная версия