|
Вызов методов из DLL С# в длл на С
|
|||
---|---|---|---|
#18+
Добрый день всем. Есть интересная задача: 1. Есть DLL на С , в ней метод, в котором : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
В Н-файле обьявлено: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
TestLibrary - DLL C#, f_TESTFUNCTION - метод в этой DLL . При выполнении кода С - DLL загружается, но метод не находит. Как правильно вызвать метод DLL C# из кода на С/С++? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2016, 13:03 |
|
Вызов методов из DLL С# в длл на С
|
|||
---|---|---|---|
#18+
Гугл почитай . DLL на C# это не классическая DLL, а сборка .NET. Это промежуточный IL-код (ассемблер .NET), который должен быть сначала откомпилирован, затем выполнится. Вобщем сначала надо CLR (ядро .NET) запустить, затем через него код из DLL. Я не пробовал так делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2016, 13:57 |
|
Вызов методов из DLL С# в длл на С
|
|||
---|---|---|---|
#18+
Dima T Гугл почитай . DLL на C# это не классическая DLL, а сборка .NET. Это промежуточный IL-код (ассемблер .NET), который должен быть сначала откомпилирован, затем выполнится. Вобщем сначала надо CLR (ядро .NET) запустить, затем через него код из DLL. Я не пробовал так делать. зачем всё это писать? pf, решение имеется, хоть и не особо изящное: http://www.codeproject.com/Articles/16310/How-to-Automate-Exporting-NET-Function-to-Unmanage пример использования http://www.codeproject.com/Articles/16374/How-to-Write-a-Terminal-Services-Add-in-in-Pure-C (дизассемблировать сборку, добавить инструкцию, описывающую нативную точку входа, собрать заново) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2016, 14:28 |
|
Вызов методов из DLL С# в длл на С
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2016, 13:01 |
|
Вызов методов из DLL С# в длл на С
|
|||
---|---|---|---|
#18+
pfКак правильно вызвать метод DLL C# из кода на С/С++? В C# экспортировать интерфейс и реализацию через COM. В Си импортировать COM-интерфейс и вызвать нужный метод интерфейса. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2016, 21:53 |
|
Вызов методов из DLL С# в длл на С
|
|||
---|---|---|---|
#18+
hVostt, Опять вернулся после долгого перерыыва к этому вопросу. С# код: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
В настройках проекта стоит галка : Register for COM interop В assemly.cs выставлен [assembly: ComVisible(true)] При сборке создается dll, pdb и tlb. Попытка вызвать это чудо из С: Код: plaintext 1. 2. 3. 4. 5. 6.
При сборке вылетает ошибка : unresolved external symbol __imp__f_Message referenced in function "int __cdecl InitInstance(struct HINSTANCE__ *,int)" (?InitInstance@@YAHPAUHINSTANCE__@@H@Z) где функция InitInstance - функция, из которой вызываю метод f_Message из DLL C# ... При попытке просмотреть свою DLL C# с помощью depends - вижу, что не обнаруживает метод, который экспортируется P.S. Попытка использования методики, которая описана здесь : https://www.codeproject.com/Articles/612604/Best-Practice-in-Writing-a-COM-Visible-Assembly-Cs ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 11:44 |
|
|
start [/forum/topic.php?fid=20&fpage=30&tid=1399339]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 160ms |
0 / 0 |