Я пытаюсь создать карту имен функций и указателей функций с помощью __stdcall. Вот как я в настоящее время получить свои указатели на функции:Создание карты __stdcall
typedef int (CALLBACK* InitializeDLL)(int,int);
InitializeDLL initializeDLL = (InitializeDLL)GetProcAddress(hInstanceLibrary, "InitializeDLL");
и теперь моя карта:
map<string, int *__stdcall> mapInt;
mapInt["InitializeDLL"] = initializeDLL; //throws error for "InitializeDLL cannot be assigned to entity of type int*"
Эта ошибка является именно то, что я ожидал, но мне нужно добавить тип, видимо, перед __stdcall. Если удалить «ИНТ» в передней части, то она жалуется:
Error: expected a type specifier
Если я пытаюсь скомпилировать его только после создания объекта карты с «Int», включенным в передней, он выдает ошибку:
error C2059: syntax error : '>'
Это не имеет для меня никакого смысла. Итак, каков правильный способ использования __stdcall как типа для карты? Добавление int перед ним показалось мне подозрительным, но если я его не добавлю, он жалуется, что ему нужен указанный тип.
Кроме того, CALLBACK является #define для __stdcall, если это сбивает с толку.
http://stackoverflow.com/questions/8304582/how-to-store-functional-objects-with-difrent-signature-in-a-container-eg-std#8304694 –
'__stdcall' больше не является тип, чем 'const'. Они просто модификаторы типа. –