А я не так делаю и у меня не глючит

Вот что я делаю:
#include <windows.h>
#define MAXMODULE 50
typedef int ( WINAPI *DDSSEARCH )();
typedef int ( WINAPI *DDSFREQ )(int, double, int*, int*);
typedef int ( WINAPI *DDSDOWNLOAD )();
int main(){
HINSTANCE hLib=LoadLibrary("DDS3X25Dll");
if(hLib==NULL) {
printf("Unable to load library!\n");
return 1;
}
char mod[MAXMODULE];
GetModuleFileName((HMODULE)hLib, (LPTSTR)mod, MAXMODULE);
printf("Library loaded: %s\n",mod);
DDSSearch=GetProcAddress((HMODULE)hLib, "DDSSearch");
DDSSetFrequency=GetProcAddress((HMODULE)hLib, "DDSSetFrequency");
DDSDownload=GetProcAddress((HMODULE)hLib, "DDSDownload");
if(DDSSearch==NULL || DDSSetFrequency==NULL || DDSDownload==NULL) {
printf("Unable to load function(s)\n");
FreeLibrary((HMODULE)hLib);
return 2;
}
// далее основная работа
}