2012-05-21 3 views
0

Он просто меня смутило:Не удается определить тип функции в C

typedef bool(*pGetNameByPid)(DWORD PID, TCHAR lpszProcessName[MAX_PATH]);

Есть ли что-нибудь с указанным предложением? Я хочу экспортировать функцию с именем GetNameByPid из DLL, написанной на C++. Но при компиляции сообщает, что:

error C2143: syntax error : missing ')' before '*'

Любая помощь?

+0

BTW, 'TCHAR lpszProcessName [MAX_PATH]' может ввести в заблуждение; это полностью эквивалентно 'TCHAR * lpszProcessName'. – jamesdlin

+0

Спасибо ~ Я изменил его на последнее. – Kinka

ответ

2

Нет типа bool в C89, который является стандартом C, который поддерживает Microsoft Compilers. Вы можете использовать int или WINAPI-х BOOL в качестве возвращаемого типа:

typedef BOOL (*pGetNameByPid)(DWORD PID, TCHAR lpszProcessName[MAX_PATH]); 

Чтобы экспортировать функцию из DLL:

__declspec(dllexport) BOOL GetNameByPid(DWORD PID, TCHAR* lpszProcessName) 
{ 
    /* Do some work */ 
    return TRUE; 
} 
+0

Отлично! Это ответ. Благодаря! – Kinka

Смежные вопросы