Типы создания DLL

0

Мне нужно создать C++ не-dotnet DLL, которая будет вызываться и использоваться приложением VB.net. Я пытаюсь определить тип DLL для создания. DLL будет содержать некоторые классы, переменные и функции, которые я буду писать. Я понимаю, что есть три типа DLL, которые могут быть созданы: 1) Регулярная DLL - Статически связанная с MFC, 2) Обычная DLL - Динамически связанная с MFC и 3) DLL, которая использует стандартные библиотеки Windows, не-MFC.

Мой вопрос в том, что было бы лучше всего использовать, тот, который связан с MFC, или тот, который использует стандартные библиотеки Windows? Может ли кто-нибудь сделать предложение и объяснить различия между MFC и стандартными библиотеками?

Благодарю!

Gary

Теги:
dll
mfc

1 ответ

1

Microsoft Foundation Classes (MFC) - относительно тонкая оболочка C++ вокруг API Win32 с акцентом на кодирование пользовательского интерфейса. Вам не нужно статически или динамически связывать MFC с вашей DLL, если вы не используете средства MFC, такие как классы контейнеров, или пытаетесь отобразить пользовательский интерфейс, написанный с помощью MFC в вашей C++ DLL. Это маловероятные сценарии.

Люди начали вызов неуправляемого кода с VB.NET с тех пор, как начал.NET. Там есть целая wiki по этому вопросу на http://www.pinvoke.net/ и есть полезное пошаговое руководство по CodeProject, http://www.codeproject.com/Articles/6243/Step-by-Step-Calling- C-DLL-from-VC-and-VB-Part-2. Я рекомендую начать там.

Это немного сложнее, но вы также можете написать управляемый код в C++ с помощью C++/CLI, на который можно ссылаться, как и на любую другую сборку управляемого кода, вместо использования вызова платформы. Вы можете использовать его для создания управляемых интерфейсов, управляемых VB, которые вызывают неуправляемый, простой старый C++ код. Там было введение в C++/CLI в MSDN по адресу http://msdn.microsoft.com/en-us/library/ms379617(v=vs.80).aspx и быстрый пример использования его в качестве прокладки для неуправляемых C++ в этой записи в блоге MSDN: http://blogs.msdn.com/b/junfeng/archive/2006/05/20/599434.aspx

Ещё вопросы

Сообщество Overcoder
Наверх
Меню