я в настоящее время движется проект C++ от VS6 к VS2008, но я прийти через следующее сообщение об ошибке для многих функций в shobjidl.hВторой C Рычажный в shobjidl.h
error C2733: second C linkage of overloaded function 'HWND_UserMarshal' not allowed c:\program files\microsoft sdks\windows\v6.0a\include\shobjidl.h 28830
Не только HWND_UserMarshall является а также другие функции в этом заголовке, такие как HWND_UserSize, HWND_UserFree и HWND_UserFree64.
Я понимаю, что эта ошибка возникает, когда внешняя функция «С» объявлена с другим набором параметров, однако это находится в заголовке SDK, а не в том, что я могу изменить.
Есть ли у кого-нибудь какие-либо предложения о том, какие должны быть мои следующие шаги?
EDIT: заголовок является заголовком Microsoft и в верхней части содержит следующие комментарии
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
/* File created by MIDL compiler version 7.00.0499 */
/* Compiler settings for shobjidl.idl:
Oicf, W1, Zp8, env=Win32 (32b run)
protocol : dce , ms_ext, c_ext, robust
error checks: allocation ref bounds_check enum stub_data
VC __declspec() decoration level:
__declspec(uuid()), __declspec(selectany), __declspec(novtable)
DECLSPEC_UUID(), MIDL_INTERFACE()
*/
//@@MIDL_FILE_HEADING()
Как Макс сказал, что там, вероятно, есть макрос или #define, что вызывает проблемы. Попытайтесь выяснить, куда входит этот заголовок, и посмотреть, есть ли что-то очевидное. – Luke