On 7/11/12, Peter Schaefer <[email protected]> wrote: > Hi! > > I'm using the recent rubenvb-gcc-4.7.1 release and tried to compile an > application using TAPI, however tapi.h cannot be > compiled: > >> c:\mingw32\bin\../lib/gcc/i686-w64-mingw32/4.7.1/../../../../i686-w64-mingw32/include/tapi.h:2074:107: >> error: declaration of C function 'LONG lineAddProviderW(LPCWSTR, HWND, >> LPDWORD)' conflicts with >> c:\mingw32\bin\../lib/gcc/i686-w64-mingw32/4.7.1/../../../../i686-w64-mingw32/include/tapi.h:2072:1: >> error: previous declaration 'LONG lineAddProviderW(LPCSTR, HWND, LPDWORD)' >> here > > This is because the whole list of > >> #define yadayada __MINGW_NAME_AW(yadayada) > > is located *before* the function declarations and the expansion of the > __MINGW_NAME_AW macro leads to name clashes. > > This can be fixed by moving the macro block *after* the function > declarations (see patch below). > > However, this problem solved just ends up with linker errors since it seems > that many functions declared are not in the > import lib libtapi32.a: > > C:\Code\tapiLine.cpp:24: undefined reference to `lineInitializeExW@28' > C:\Code\tapiLine.cpp:38: undefined reference to `lineGetDevCapsW@20' >
I have a patch to update lib32/tapi32.def, so the linkage errors will go away. As for the header, others would review better. > The program must be compiled with -D_UNICODE -DUNICODE. > > I'm now going to use the "LoadLibrary"-way and resolve the symbols > dynamically, but wanted to have this issue reported. > > If i can help in some way, let me know. > > Regards, > Peter > > ----- PATCH ----8<-----8<------8<-------SNIP------ > > *** tapi_1.h Fri Jun 15 17:45:13 2012 > --- tapi_2.h Tue Jul 10 23:54:26 2012 > *************** > *** 2007,2072 **** > DWORD dwStringOffset; > } VARSTRING,*LPVARSTRING; > > - #define lineAddProvider __MINGW_NAME_AW(lineAddProvider) > - #define lineBlindTransfer __MINGW_NAME_AW(lineBlindTransfer) > - #define lineConfigDialog __MINGW_NAME_AW(lineConfigDialog) > - #define lineConfigDialogEdit __MINGW_NAME_AW(lineConfigDialogEdit) > - #define lineCreateAgent __MINGW_NAME_AW(lineCreateAgent) > - #define lineCreateAgent __MINGW_NAME_AW(lineCreateAgent) > - #define lineDial __MINGW_NAME_AW(lineDial) > - #define lineForward __MINGW_NAME_AW(lineForward) > - #define lineGatherDigits __MINGW_NAME_AW(lineGatherDigits) > - #define lineGenerateDigits __MINGW_NAME_AW(lineGenerateDigits) > - #define lineGetAddressCaps __MINGW_NAME_AW(lineGetAddressCaps) > - #define lineGetAddressID __MINGW_NAME_AW(lineGetAddressID) > - #define lineGetAddressStatus __MINGW_NAME_AW(lineGetAddressStatus) > - #define lineGetAgentActivityList > __MINGW_NAME_AW(lineGetAgentActivityList) > - #define lineGetAgentCaps __MINGW_NAME_AW(lineGetAgentCaps) > - #define lineGetAgentGroupList __MINGW_NAME_AW(lineGetAgentGroupList) > - #define lineGetAgentStatus __MINGW_NAME_AW(lineGetAgentStatus) > - #define lineGetAppPriority __MINGW_NAME_AW(lineGetAppPriority) > - #define lineGetCallInfo __MINGW_NAME_AW(lineGetCallInfo) > - #define lineGetCountry __MINGW_NAME_AW(lineGetCountry) > - #define lineGetDevCaps __MINGW_NAME_AW(lineGetDevCaps) > - #define lineGetDevConfig __MINGW_NAME_AW(lineGetDevConfig) > - #define lineGetGroupList __MINGW_NAME_AW(lineGetGroupList) > - #define lineGetIcon __MINGW_NAME_AW(lineGetIcon) > - #define lineGetID __MINGW_NAME_AW(lineGetID) > - #define lineGetDevStatus __MINGW_NAME_AW(lineGetDevStatus) > - #define lineGetProviderList __MINGW_NAME_AW(lineGetProviderList) > - #define lineGetQueueList __MINGW_NAME_AW(lineGetQueueList) > - #define lineGetRequest __MINGW_NAME_AW(lineGetRequest) > - #define lineGetTranslateCaps __MINGW_NAME_AW(lineGetTranslateCaps) > - #define lineHandoff __MINGW_NAME_AW(lineHandoff) > - #define lineInitializeEx __MINGW_NAME_AW(lineInitializeEx) > - #define lineMakeCall __MINGW_NAME_AW(lineMakeCall) > - #define lineOpen __MINGW_NAME_AW(lineOpen) > - #define linePark __MINGW_NAME_AW(linePark) > - #define linePickup __MINGW_NAME_AW(linePickup) > - #define linePrepareAddToConference > __MINGW_NAME_AW(linePrepareAddToConference) > - #define lineRedirect __MINGW_NAME_AW(lineRedirect) > - #define lineSetAppPriority __MINGW_NAME_AW(lineSetAppPriority) > - #define lineSetDevConfig __MINGW_NAME_AW(lineSetDevConfig) > - #define lineSetTollList __MINGW_NAME_AW(lineSetTollList) > - #define lineSetupConference __MINGW_NAME_AW(lineSetupConference) > - #define lineSetupTransfer __MINGW_NAME_AW(lineSetupTransfer) > - #define lineTranslateAddress __MINGW_NAME_AW(lineTranslateAddress) > - #define lineTranslateDialog __MINGW_NAME_AW(lineTranslateDialog) > - #define lineUnpark __MINGW_NAME_AW(lineUnpark) > - > - #define phoneConfigDialog __MINGW_NAME_AW(phoneConfigDialog) > - #define phoneGetButtonInfo __MINGW_NAME_AW(phoneGetButtonInfo) > - #define phoneGetDevCaps __MINGW_NAME_AW(phoneGetDevCaps) > - #define phoneGetIcon __MINGW_NAME_AW(phoneGetIcon) > - #define phoneGetID __MINGW_NAME_AW(phoneGetID) > - #define phoneGetStatus __MINGW_NAME_AW(phoneGetStatus) > - #define phoneInitializeEx __MINGW_NAME_AW(phoneInitializeEx) > - #define phoneSetButtonInfo __MINGW_NAME_AW(phoneSetButtonInfo) > - > - #define tapiGetLocationInfo __MINGW_NAME_AW(tapiGetLocationInfo) > - #define tapiRequestMakeCall __MINGW_NAME_AW(tapiRequestMakeCall) > - #define tapiRequestMediaCall __MINGW_NAME_AW(tapiRequestMediaCall) > - > LONG WINAPI lineAccept(HCALL hCall,LPCSTR lpsUserUserInfo,DWORD > dwSize); > LONG WINAPI lineAddProvider(LPCSTR lpszProviderFilename,HWND > hwndOwner,LPDWORD lpdwPermanentProviderID); > LONG WINAPI lineAddProviderA(LPCSTR lpszProviderFilename,HWND > hwndOwner,LPDWORD lpdwPermanentProviderID); > --- 2007,2012 ---- > *************** > *** 2316,2321 **** > --- 2256,2322 ---- > LONG WINAPI tapiRequestMediaCall(HWND hwnd,WPARAM wRequestID,LPCSTR > lpszDeviceClass,LPCSTR lpDeviceID,DWORD > dwSize,DWORD dwSecure,LPCSTR > > lpszDestAddress,LPCSTR lpszAppName,LPCSTR lpszCalledParty,LPCSTR > lpszComment); > LONG WINAPI tapiRequestMediaCallA(HWND hwnd,WPARAM wRequestID,LPCSTR > lpszDeviceClass,LPCSTR lpDeviceID,DWORD > dwSize,DWORD dwSecure,LPCSTR > > lpszDestAddress,LPCSTR lpszAppName,LPCSTR lpszCalledParty,LPCSTR > lpszComment); > LONG WINAPI tapiRequestMediaCallW(HWND hwnd,WPARAM wRequestID,LPCWSTR > lpszDeviceClass,LPCWSTR lpDeviceID,DWORD > dwSize,DWORD > > dwSecure,LPCWSTR lpszDestAddress,LPCWSTR lpszAppName,LPCWSTR > lpszCalledParty,LPCWSTR lpszComment); > + > + > + #define lineAddProvider __MINGW_NAME_AW(lineAddProvider) > + #define lineBlindTransfer __MINGW_NAME_AW(lineBlindTransfer) > + #define lineConfigDialog __MINGW_NAME_AW(lineConfigDialog) > + #define lineConfigDialogEdit __MINGW_NAME_AW(lineConfigDialogEdit) > + #define lineCreateAgent __MINGW_NAME_AW(lineCreateAgent) > + #define lineCreateAgent __MINGW_NAME_AW(lineCreateAgent) > + #define lineDial __MINGW_NAME_AW(lineDial) > + #define lineForward __MINGW_NAME_AW(lineForward) > + #define lineGatherDigits __MINGW_NAME_AW(lineGatherDigits) > + #define lineGenerateDigits __MINGW_NAME_AW(lineGenerateDigits) > + #define lineGetAddressCaps __MINGW_NAME_AW(lineGetAddressCaps) > + #define lineGetAddressID __MINGW_NAME_AW(lineGetAddressID) > + #define lineGetAddressStatus __MINGW_NAME_AW(lineGetAddressStatus) > + #define lineGetAgentActivityList > __MINGW_NAME_AW(lineGetAgentActivityList) > + #define lineGetAgentCaps __MINGW_NAME_AW(lineGetAgentCaps) > + #define lineGetAgentGroupList __MINGW_NAME_AW(lineGetAgentGroupList) > + #define lineGetAgentStatus __MINGW_NAME_AW(lineGetAgentStatus) > + #define lineGetAppPriority __MINGW_NAME_AW(lineGetAppPriority) > + #define lineGetCallInfo __MINGW_NAME_AW(lineGetCallInfo) > + #define lineGetCountry __MINGW_NAME_AW(lineGetCountry) > + #define lineGetDevCaps __MINGW_NAME_AW(lineGetDevCaps) > + #define lineGetDevConfig __MINGW_NAME_AW(lineGetDevConfig) > + #define lineGetGroupList __MINGW_NAME_AW(lineGetGroupList) > + #define lineGetIcon __MINGW_NAME_AW(lineGetIcon) > + #define lineGetID __MINGW_NAME_AW(lineGetID) > + #define lineGetDevStatus __MINGW_NAME_AW(lineGetDevStatus) > + #define lineGetProviderList __MINGW_NAME_AW(lineGetProviderList) > + #define lineGetQueueList __MINGW_NAME_AW(lineGetQueueList) > + #define lineGetRequest __MINGW_NAME_AW(lineGetRequest) > + #define lineGetTranslateCaps __MINGW_NAME_AW(lineGetTranslateCaps) > + #define lineHandoff __MINGW_NAME_AW(lineHandoff) > + #define lineInitializeEx __MINGW_NAME_AW(lineInitializeEx) > + #define lineMakeCall __MINGW_NAME_AW(lineMakeCall) > + #define lineOpen __MINGW_NAME_AW(lineOpen) > + #define linePark __MINGW_NAME_AW(linePark) > + #define linePickup __MINGW_NAME_AW(linePickup) > + #define linePrepareAddToConference > __MINGW_NAME_AW(linePrepareAddToConference) > + #define lineRedirect __MINGW_NAME_AW(lineRedirect) > + #define lineSetAppPriority __MINGW_NAME_AW(lineSetAppPriority) > + #define lineSetDevConfig __MINGW_NAME_AW(lineSetDevConfig) > + #define lineSetTollList __MINGW_NAME_AW(lineSetTollList) > + #define lineSetupConference __MINGW_NAME_AW(lineSetupConference) > + #define lineSetupTransfer __MINGW_NAME_AW(lineSetupTransfer) > + #define lineTranslateAddress __MINGW_NAME_AW(lineTranslateAddress) > + #define lineTranslateDialog __MINGW_NAME_AW(lineTranslateDialog) > + #define lineUnpark __MINGW_NAME_AW(lineUnpark) > + > + #define phoneConfigDialog __MINGW_NAME_AW(phoneConfigDialog) > + #define phoneGetButtonInfo __MINGW_NAME_AW(phoneGetButtonInfo) > + #define phoneGetDevCaps __MINGW_NAME_AW(phoneGetDevCaps) > + #define phoneGetIcon __MINGW_NAME_AW(phoneGetIcon) > + #define phoneGetID __MINGW_NAME_AW(phoneGetID) > + #define phoneGetStatus __MINGW_NAME_AW(phoneGetStatus) > + #define phoneInitializeEx __MINGW_NAME_AW(phoneInitializeEx) > + #define phoneSetButtonInfo __MINGW_NAME_AW(phoneSetButtonInfo) > + > + #define tapiGetLocationInfo __MINGW_NAME_AW(tapiGetLocationInfo) > + #define tapiRequestMakeCall __MINGW_NAME_AW(tapiRequestMakeCall) > + #define tapiRequestMediaCall __MINGW_NAME_AW(tapiRequestMediaCall) > > #define TAPIERROR_FORMATMESSAGE(__ErrCode__) (((__ErrCode__) > > 0xFFFF0000) ? ((__ErrCode__) & 0x0000FFFF) : > (((__ErrCode__) & 0x10000000) ? > > ((__ErrCode__) - 0x90000000 + 0xF000) : ((__ErrCode__) - 0x80000000 + > 0xE000))) > -- O.S. ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
