OK, now I know what to do:
You should use the __stdcall call convention and export the functions using a definition file instead of __declspec(dllexport) defining proper function names in a definition file:
LIBRARY PvdImportPlugin.dll
EXPORTS
GetName
GetDescription
GetType
GetVersionSupported
BeginWork
EndWork
GetFilter
Parse
GetPluginLanguage
GetPluginVersion
CheckPVDVersion
CanConfig
Configure
#define PVDIMPORTPLUGIN_API extern "C"
#define PvdCallType __stdcall
//#define PvdCallType
typedef bool (PvdCallType *TPluginImpGenMovieCallback)(const WCHAR*);
typedef bool (PvdCallType *TPluginImpGenPersonCallback)(const WCHAR*);
PVDIMPORTPLUGIN_API WCHAR* PvdCallType GetName(int LangID);
PVDIMPORTPLUGIN_API WCHAR* PvdCallType GetDescription(int LangID);
PVDIMPORTPLUGIN_API SHORT PvdCallType GetType();
PVDIMPORTPLUGIN_API DWORD PvdCallType GetVersionSupported();
PVDIMPORTPLUGIN_API int PvdCallType BeginWork();
PVDIMPORTPLUGIN_API void PvdCallType EndWork();
PVDIMPORTPLUGIN_API WCHAR* PvdCallType GetFilter(HWND AppHandle, int LangID, WCHAR* CustomFields);
PVDIMPORTPLUGIN_API void PvdCallType Parse(HWND AppHandle, int LangID, WCHAR* FileName, TPluginImpGenMovieCallback MovieCallback, TPluginImpGenPersonCallback HumanCallback, WCHAR* CustomFields);
PVDIMPORTPLUGIN_API int PvdCallType GetPluginLanguage();
PVDIMPORTPLUGIN_API char* PvdCallType GetPluginVersion();
PVDIMPORTPLUGIN_API BOOL PvdCallType CheckPVDVersion(int V);
PVDIMPORTPLUGIN_API BOOL PvdCallType CanConfig();
PVDIMPORTPLUGIN_API BOOL PvdCallType Configure(int LangID, HWND AppHandle, WCHAR* CustomFields);
// PvdImportPlugin.cpp : Defines the exported functions for the DLL application.
//
#include "stdafx.h"
#include "PvdImportPlugin.h"
PVDIMPORTPLUGIN_API WCHAR* PvdCallType GetName(int LangID)
{
//MessageBox(NULL, L"", L"GetName", MB_OK);
return L"TestName";
}
PVDIMPORTPLUGIN_API WCHAR* PvdCallType GetDescription(int LangID)
{
//MessageBox(NULL, L"", L"GetDescription", MB_OK);
return L"TestDesc";
}
PVDIMPORTPLUGIN_API SHORT PvdCallType GetType()
{
//MessageBox(NULL, L"", L"GetType", MB_OK);
return 3;
}
PVDIMPORTPLUGIN_API DWORD PvdCallType GetVersionSupported()
{
//MessageBox(NULL, L"", L"GetVersionSupported", MB_OK);
return 0; // All
}
PVDIMPORTPLUGIN_API int PvdCallType BeginWork()
{
//MessageBox(NULL, L"", L"BeginWork", MB_OK);
return 0;
}
PVDIMPORTPLUGIN_API void PvdCallType EndWork()
{
//MessageBox(NULL, L"", L"EndWork", MB_OK);
}
PVDIMPORTPLUGIN_API WCHAR* PvdCallType GetFilter(HWND AppHandle, int LangID, WCHAR* CustomFields)
{
//MessageBox(NULL, L"", L"GetFilter", MB_OK);
return L"Test Files|*.test";
}
PVDIMPORTPLUGIN_API void PvdCallType Parse(HWND AppHandle, int LangID, WCHAR* FileName, TPluginImpGenMovieCallback MovieCallback, TPluginImpGenPersonCallback HumanCallback, WCHAR* CustomFields)
{
//MessageBox(NULL, L"", L"Parse", MB_OK);
}
PVDIMPORTPLUGIN_API int PvdCallType GetPluginLanguage()
{
//MessageBox(NULL, L"", L"GetPluginLanguage", MB_OK);
return 0;
}
PVDIMPORTPLUGIN_API char* PvdCallType GetPluginVersion()
{
//MessageBox(NULL, L"", L"GetPluginVersion", MB_OK);
return "0.1.1.2";
}
PVDIMPORTPLUGIN_API BOOL PvdCallType CheckPVDVersion(int V)
{
//MessageBox(NULL, L"", L"CheckPVDVerion", MB_OK);
return true;
}
PVDIMPORTPLUGIN_API BOOL PvdCallType CanConfig()
{
//MessageBox(NULL, L"", L"CanConfig", MB_OK);
return false;
}
PVDIMPORTPLUGIN_API BOOL PvdCallType Configure(int LangID, HWND AppHandle, WCHAR* CustomFields)
{
//MessageBox(NULL, L"", L"Configure", MB_OK);
return false;
}
P.S. Add the def file to the linker options of the project.