Здравствуйте, 2_amigos, Вы писали:
_>Как подключить библиотеку VC++(v6) к проекту на C#?
*.lib — никак, есть варианты с обертками на MC++, то есть к нему прилинковать мона но у меня былы грабли с new
*.dll — PInvoke
Re[2]: Как подключить библиотеку VC++(v6) к проекту на C#?
Здравствуйте, vitz, Вы писали:
V>Здравствуйте, 2_amigos, Вы писали:
_>>Как подключить библиотеку VC++(v6) к проекту на C#? V>*.lib — никак, есть варианты с обертками на MC++, то есть к нему прилинковать мона но у меня былы грабли с new V>*.dll — PInvoke
А в чем разница между *.lib и *.dll? У меня есть и то, и другое:rsidll32.dll и rsidll32.lib
Re[3]: Как подключить библиотеку VC++(v6) к проекту на C#?
Здравствуйте, 2_amigos, Вы писали:
_>А в чем разница между *.lib и *.dll? У меня есть и то, и другое:rsidll32.dll и rsidll32.lib
*.lib статическая библиотека
*.dll динамическая
Re[4]: Как подключить библиотеку VC++(v6) к проекту на C#?
Здравствуйте, vitz, Вы писали:
V>Здравствуйте, 2_amigos, Вы писали:
_>>А в чем разница между *.lib и *.dll? У меня есть и то, и другое:rsidll32.dll и rsidll32.lib V>*.lib статическая библиотека V>*.dll динамическая
Так что лучше использовать?
Re[4]: Как подключить библиотеку VC++(v6) к проекту на C#?
Здравствуйте, Morpheus_, Вы писали:
M_>Здравствуйте, 2_amigos, Вы писали:
_>>Есть ли подробные интсрукции по подключению?
M_>вот она: M_>
M_>[DllImport("mybest.dll")]
M_>static public extern void MyBestFunction();
M_>
M_>
А как насчет таких структур из библиотеки? Как их использовать в C# проекте?
// Basic types
typedef struct { } __RSI_CHANNEL; // DO NOT RELY ON THE DEFINITION OF RSI_CHANNEL
typedef __RSI_CHANNEL FAR* RSI_CHANNEL; // channel handle
Re[5]: Как подключить библиотеку VC++(v6) к проекту на C#?
Здравствуйте, 2_amigos, Вы писали:
_>Так что лучше использовать?
Не в лучше дело, а том что вам надо получить
*.lib — Статическая библиотека, это значит что она содержит код который при линковке будет добавлен в вашь модуль. С# такого не понимат, тем более, что *.lib содержит native код. Но такой вариант прокатит в MC++ так он (MC++) позволяет жудкий винигрет из native и MSIL.
Хотя в вашем случае *.lib используется для экспорта функций(и еще чего-то там...) из *.dll, содержит код для вызова функций из *.dll что бы проще жилось так сказать, прилинковал такую либу к проекту и пользуешься, а готовый модуль *.dll пользует.
Как сказали выше, вам подойдет PInvoke (если только вы не хотите использовать классы определенные в библиотеке), а структуы прийдется описать еще раз, но уже в C#
Да, кстати по поводу примеров кода, поиск рулит ключевое слово PInvoke
Re[6]: Как подключить библиотеку VC++(v6) к проекту на C#?
Здравствуйте, 2_amigos, Вы писали:
_>>>Есть ли подробные интсрукции по подключению?
M_>>вот она: M_>>
M_>>[DllImport("mybest.dll")]
M_>>static public extern void MyBestFunction();
M_>>
M_>>
_>А как насчет таких структур из библиотеки? Как их использовать в C# проекте? _>// Basic types _>typedef struct { } __RSI_CHANNEL; // DO NOT RELY ON THE DEFINITION OF RSI_CHANNEL _>typedef __RSI_CHANNEL FAR* RSI_CHANNEL; // channel handle
public struct __RSI_CHANNEL
{
//...
}
[DllImport("mybest.dll")]
static public extern void PassMyStruct(ref __RSI_CHANNEL val);
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: Как подключить библиотеку VC++(v6) к проекту на C#?