I'm trying to use the TAPI32 functions.  What I have compiles fine, but the linker is giving this error.  I am running Win7 x64 if that makes any difference.
Linking...
Emergence Linker v1.12 Copyright ÂÃ,© 2009 Ionic Wind Software
Unresolved external __imp_lineInitializeExA
Error: Unable to detect format of C:\Program Files (x86)\EBDev\libs\TAPI32.LIB
Error: Unresolved extern __imp_lineInitializeExA
Error: Unresolved extern __imp_lineNegotiateAPIVersion
Error: Unresolved extern __imp_lineGetDevCapsA
Error: Unresolved extern __imp_lineOpenA
Error: Unresolved extern __imp_lineMakeCallA
Error(s) in linking C:\Users\Public\Emergence Basic\projects\MyProjects\TapiTest.exe
Thanks,
Clint
			
			
			
				Did you create, or otherwise replace the default tapi32.lib that comes with ebasic?
Also, can you please post the code that is causing this error (or some example code that will cause it).
			
			
			
				Thanks for your response Wayne.  Yes, I did create an import library from the TAP32.dll that came with this computer.  This code was written by Tony and I'm trying to turn it into an inc file that I can use in any program.
' Dial.exe
' Written by Tony Moran August 2008
'
' Should be called in the following way:- Dial -txxxxxxxxxxx where xxxxxxxxxx is the phone number to dial
' Include libraries
$INCLUDE "windowssdk.inc"
$USE "TAPI32.LIB"
$INCLUDE "TAPI.INC"
$INCLUDE "winbase.inc"
SUB TapiDial(STRING PhNumber),INT
' Field definitions
Def ErrorCode as Long
Def LineApp as HLineApp
Def ApiVersion as DWord
Def NumDevs as DWord
Def LineInit as LineInitializeExParams
Def LineExtID as LineExtensionID
Def TapiEvent as Handle
Def Count as Dword
Def DevCaps as LineDevCaps
Def LineNo as HLine
Def LineNumber as Handle
Def Zero as DWord
Def PhoneNumber as string
Def Provider as String
Def ProviderPointer as pointer
Def LineName as STRING
Def LinePointer as pointer
Def APILow as Dword
Def APIHi as DWord
Def CLA as String
'Def GetCommand as pointer
' Field initial values
LineApp = 0
ApiVersion = 0x020002
NumDevs = 0
TapiEvent = 0
LineInit.dwOptions = LINEINITIALIZEEXOPTION_USEEVENT
LineInit.dwTotalSize = 1000
Zero = 0
APILow = 0x010004
APIHi = 0x020002
' Get command line input
'GetCommand = GetCommandLineA()
CLA = PhNumber	'#<String>GetCommand
' Check -t or -T was in command line. If not display message
If INSTR(CLA,"-t") = 0 AND INSTR(CLA,"-T") = 0 THEN
	MessageBox(Null,"No parameters passed","Dial Error",@MB_OK)
	RETURN 0
Endif
' Get position of phone number
Pos = Instr(CLA,"-t")
If Pos = 0 THEN
	Pos = Instr(CLA,"-T")
Endif
' Extract phone number
PhoneNumber = Mid$(CLA,pos+2)
' If phone number blank then show Message
If PhoneNumber = "" THEN
	MessageBox(Null,"No phone number passed","Dial Error",@MB_OK)
	RETURN 0
Endif
' Initialise TAPI and get number of devices
ErrorCode = LineInitializeExa(LineApp,NULL,NULL,"Dial",NumDevs,ApiVersion,LineInit)
' Count through devices
For Count = 0 to NumDevs -1
	
	DevCaps.DwTotalSize = 2000
' Check line supports API version 2
	LineNegotiateAPIVersion(LineApp,Count,APILow,APIHi,ApiVersion,LineExtId)
' Get line capabilities and information
	LineGetDevCaps(LineApp,Count,ApiVersion,Null,DevCaps)
' Extract the provider name
	ProviderPointer = Devcaps
	ProviderPointer = ProviderPointer + DevCaps.dwProviderInfoOffset
	Provider = #<string>ProviderPointer
	LinePointer = Devcaps
	LinePointer = LinePointer + DevCaps.dwLineNameOffset
	LineName = #<string>LinePointer
' If line has interactive voice capability then use to dial number
		If Devcaps.dwMediaModes = 4 or DevCaps.dwMediaModes = 20 Then
		LineNumber = DevCaps.dwPermanentLineId
		LineNo = Count
		MakeCall()
		RETURN 1
		ENDIF
NEXT Count
MessageBox(NULL,"Sorry, no voice lines found","Dial Error",@MB_OK)
RETURN 0
ENDSUB
' Subroutine to dial number
Sub MakeCall()
Def CallParams as LineCallParams
Def LineApp as HLineApp
Def ApiVersion as DWord
Def LineNumber as Handle
Def Count as Dword
Def PhoneNumber as string
' Set up calling parameters
	CallParams.dwTotalSize = 1000
	CallParams.dwBearerMode = LINEBEARERMODE_VOICE
	CallParams.dwMediaMode = LINEMEDIAMODE_DATAMODEM
	CallParams.dwCallParamFlags = LINECALLPARAMFLAGS_IDLE
	CallParams.dwAddressMode = LINEADDRESSMODE_ADDRESSID
	CallParams.dwAddressId = 0
	LineNo = 0
	Privileges = LINECALLPRIVILEGE_NONE
' Open the line to dial
	
	ErrorCode = LineOpen(LineApp,Count,LineNumber,ApiVersion,Null,NULL,Privileges,NULL,CallParams)
' Dial the number
	ErrorCode = LineMakeCall(LineNumber,LineNumber,PhoneNumber,Null,Null)
' If there is an error then display it in a messagebox so we can work out what went wrong
	If ErrorCode < 0 THEN
		MessageBox(Null,Str$(ErrorCode),"Dial Error",@MB_OK)
	Endif
EndSub
Thanks for your help.
Clint
			
			
			
				Clint
I get the exact same error.
I already had a link lib and it failed with it.
Then I renamed it and created a new one and it fails with it also.
I'm on a XP SP3 machine.
LarryMc
			
			
			
				If you change file name extension to lower case, it will link:
$USE "TAPI32.lib"
			
			
			
				Thanks sapero.  That took care of that.  What other things are case sensitive?  :)
			
			
			
				I don't remember, maybe .o, .obj and .res files linked with $use directive.
But for sure any external, imported and exported symbol is case sensitive for the linker. For example - subroutine name passed to export directive must be identical to the name of subroutine, you can't change MySub to mysub.
Assembler labels defineded by "declare label_name" are case sensitive too.