Мы явно вызовем DLL, как это было сделано в шаге "Шаг 41 - Явный вызов функций DLL". Создаем код для тестирования, не забываем, что нам нужно чтобы DLL была доступна.
#include "stdafx.h"
#include "windows.h"
#include "iostream.h"
typedef VOID (WINAPI MESS)();
void main()
{
HINSTANCE hModule=NULL;
hModule=::LoadLibrary("DllExcel.dll");
if (hModule!=NULL)
{
MESS* me=NULL;
me=(MESS*)::GetProcAddress((HMODULE)hModule,"MyTest");
if (me!=NULL)
{
(*me)();
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_HMODULE ,
hModule, GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(PTSTR) &lpMsgBuf, 0, NULL );
cout << (char*)lpMsgBuf << endl;
}
else cout << "Error Load function" << endl;
}
else cout << "error load Dll" << endl;
::FreeLibrary(hModule);
}
Запускаем.

Появится предусмотренное функцией диалоговое окно, а дальше сообщение о нашей ошибке.

Обратить внимание нужно на то, что передается флаг получения описания ошибки из модуля FORMAT_MESSAGE_FROM_HMODULE. Так же ошибку можно увидеть в Error LookUp.

Но при условии, что Вы добавите в модуль название DLL.

Полный код в проекте.