Если галочка Empty Project, при создании проекта, не была поставлена, то будут созданы все необходимые файлы.
Если галочка Empty Project была поставлена, то проект будет пустым и в него, вручную, нужно добавить необходимые файлы. Самый простой вариант, это добавить один файл C++ (Project -> Add New Item -> C++ File (.cpp)) с именем проекта (в нашем случае MyLibrary1.cpp). В него поместить следующий код:
#include <windows.h>
BOOL WINAPI DllMain(
HINSTANCE hinstDLL, // handle to DLL module
DWORD fdwReason, // reason for calling function
LPVOID lpReserved ) // reserved
{
// Perform actions based on the reason for calling.
switch( fdwReason )
{
case DLL_PROCESS_ATTACH:
// Initialize once for each new process.
// Return FALSE to fail DLL load.
break;
case DLL_THREAD_ATTACH:
// Do thread-specific initialization.
break;
case DLL_THREAD_DETACH:
// Do thread-specific cleanup.
break;
case DLL_PROCESS_DETACH:
// Perform any necessary cleanup.
break;
}
return TRUE; // Successful DLL_PROCESS_ATTACH.
}
Функции, которые должны быть видимыми для внешних программ, можно поместить в этом же файле, как написано в примере ниже:
extern "C" {
__declspec(dllexport) int func() {
return 0;
}
}
В приведенном выше примере:
Строка 1: Указывает компилятору, что функция именуется в стиле C (убирается декорирование С++, описывающее аргументы функции).
Строка 2: __declspec(dllexport) указывает компилятору, что функция должна быть видима внешним программам.
Также, будет полезно добавить в проект DEF-файл, содержащий описание экспортируемых функций:
LIBRARY "MyLibrary1"
EXPORTS
func
Скомпилируйте проект. Если сделано все как написано, то проблем с дальнейшим импортом функций из библиотеки не возникнет.