c++ - Error 42: Symbol Undefined _URLDownloadToCacheFileA 24
- SL (44/44) Mar 18 2005 I'm getting this error in a program, on linking:
- Walter (4/9) Mar 18 2005 Examine the urlmon.lib to see if it defines the symbol. The lib.exe prog...
- SL (32/47) Mar 18 2005 Hmm. Here's the output of implib and then lib (I tried using lib /? to
- SL (5/5) Mar 18 2005 Ok, 'lib -l urlmon.lib' is erroring with 'Corrupt file 'urlmon.lib',
- Walter (4/9) Mar 18 2005 Or something else is happening. implib has been in the field for over a
- SL (6/8) Mar 18 2005 I just redownloaded the "Basic Utilities Package" and tried the
- Walter (4/11) Mar 18 2005 Now we're getting somewhere. Check out
- SL (14/18) Mar 18 2005 Ah! Thanks. I thought I might have to do something like that, but was
- Scott Michel (5/10) Mar 24 2005 It's not hard to find slightly older versions of LINK that still support...
I'm getting this error in a program, on linking: Error 42: Symbol Undefined _URLDownloadToCacheFileA 24 The program #include's <urlmon.h>, and urlmon.lib is included in the compile line. I generated urlmon.lib from urlmon.dll with implib ("Digital Mars Import Library Manager Version 7.5B4n"). Compile line: dmc.exe -oSyncStarmap.exe c:\dm\lib\urlmon.lib -D -g -DWINDOWS -DMULTI SyncSm.cpp genalg.cpp randalg.cpp SyncSm.def -mn -5 | more Paths etc: set path=c:\dm\bin;c:\windows\system32;c:\windows;c:\windows\command set lib=c:\dm\lib set include=c:\dm\include What I see when I attempt to compile it: Compiling SyncStarmap... SyncSm.cpp: genalg.cpp: randalg.cpp: link SyncSm+genalg+randalg,SyncStarmap.exe,,c:\dm\lib\urlmon+user32+kernel32,Syn cSm/co/noi; OPTLINK (R) for Win32 Release 7.50B1 Copyright (C) Digital Mars 1989 - 2001 All Rights Reserved SyncSm.obj(SyncSm) Error 42: Symbol Undefined _URLDownloadToCacheFileA 24 --- errorlevel 1 SyncSm.cpp is calling URLDownloadToCacheFile like so: int hresult = URLDownloadToCacheFile(NULL, "http://there-was-a-url-here-but-I've-removed-it", path, sizeof(path), 0, &downloadCallback); Since it's compiling right, it must be a problem with the lib, right? The function names inside the lib don't look mangled at all (It's just "URLDownloadToCacheFileA", so ... c:\dm\include\win32\urlmon.h has this definition for URLDownloadToCacheFileA: STDAPI URLDownloadToCacheFileA(LPUNKNOWN,LPCSTR,LPTSTR,DWORD,DWORD,LP INDSTATUSCALLBACK); How can I make this work? What's wrong with it? I've attempted remaking the lib: Originally I had done just implib urlmon.lib urlmon.dll (I copied urlmon.dll into the c:\dm\bin folder, and after running implib, copied the generated urlmon.lib into c:\dm\lib) The lib made by implib /system urlmon.lib urlmon.dll resulted in the same link-time error. And this did too: implib /system /v /suffix urlmon.lib urlmon.dll This one didn't work, I got a "Could not start SPPN.EXE!" error: implib /system /v /suffix /Ic:\dm\include\win32 urlmon.lib urlmon.dll
Mar 18 2005
"SL" <shadowlord13 gmail.com> wrote in message news:d1f39h$1eor$1 digitaldaemon.com...I'm getting this error in a program, on linking: Error 42: Symbol Undefined _URLDownloadToCacheFileA 24 The program #include's <urlmon.h>, and urlmon.lib is included in the compile line. I generated urlmon.lib from urlmon.dll with implib ("Digital Mars Import Library Manager Version 7.5B4n").Examine the urlmon.lib to see if it defines the symbol. The lib.exe program can generate a listing of its table of contents.
Mar 18 2005
Walter wrote:"SL" <shadowlord13 gmail.com> wrote in message news:d1f39h$1eor$1 digitaldaemon.com...Hmm. Here's the output of implib and then lib (I tried using lib /? to see how to use it, but it didn't like that): C:\dm\bin>implib /system /v /suffix urlmon.lib urlmon.dll Digital Mars Import Library Manager Version 7.5B4n Copyright (C) Digital Mars 1999-2002. All Rights Reserved. Modified by Jan Knepper urlmon.lib Input is a Windows NT DLL file 'urlmon.dll'. Output is a Windows NT import library. Digital Mars Import Library Creator complete. C:\dm\bin>lib /? Digital Mars Librarian Version 8.00n Copyright (C) Digital Mars 2000-2002 All Rights Reserved www.digitalmars.com Error: /?.lib : Invalid argument C:\dm\bin>lib Digital Mars Librarian Version 8.00n Copyright (C) Digital Mars 2000-2002 All Rights Reserved www.digitalmars.com library file (.lib) urlmon.lib action-object [-+*] (.obj) list file (.lst) urlmon.lst Error: Corrupt file 'urlmon.lib', Typ=xf1, Len=xcd1e Well that's weird. Guess I'd better try to find something about lib in the manual/readme/something.I'm getting this error in a program, on linking: Error 42: Symbol Undefined _URLDownloadToCacheFileA 24 The program #include's <urlmon.h>, and urlmon.lib is included in the compile line. I generated urlmon.lib from urlmon.dll with implib ("Digital Mars Import Library Manager Version 7.5B4n").Examine the urlmon.lib to see if it defines the symbol. The lib.exe program can generate a listing of its table of contents.
Mar 18 2005
Ok, 'lib -l urlmon.lib' is erroring with 'Corrupt file 'urlmon.lib', Typ=xf1, Len=xcd1e' Hmm. So implib didn't do its job right? If I do 'implib urlmon.lib urlmon.dll', and then run 'lib -l urlmon.lib' I get the same error, ecept Len is xcd17 instead of xcd1e.
Mar 18 2005
"SL" <shadowlord13 gmail.com> wrote in message news:d1fegt$23ic$1 digitaldaemon.com...Ok, 'lib -l urlmon.lib' is erroring with 'Corrupt file 'urlmon.lib', Typ=xf1, Len=xcd1e' Hmm. So implib didn't do its job right?Or something else is happening. implib has been in the field for over a decade, it works fine.If I do 'implib urlmon.lib urlmon.dll', and then run 'lib -l urlmon.lib' I get the same error, ecept Len is xcd17 instead of xcd1e.
Mar 18 2005
Or something else is happening. implib has been in the field for over a decade, it works fine.I just redownloaded the "Basic Utilities Package" and tried the implib.exe in that (That implib.exe is version 7.6B1n, the old one I had was 7.5B4n). It actually appears to have made a library which doesn't confuse lib.exe. However, the .lib doesn't contain the NN, so I'm still getting the "Symbol Undefined _URLDownloadToCacheFileA 24" error. Hmm.
Mar 18 2005
"SL" <shadowlord13 gmail.com> wrote in message news:d1frg2$2hl9$1 digitaldaemon.com...Now we're getting somewhere. Check out www.digitalmars.com/faq.html#sysimportOr something else is happening. implib has been in the field for over a decade, it works fine.I just redownloaded the "Basic Utilities Package" and tried the implib.exe in that (That implib.exe is version 7.6B1n, the old one I had was 7.5B4n). It actually appears to have made a library which doesn't confuse lib.exe. However, the .lib doesn't contain the NN, so I'm still getting the "Symbol Undefined _URLDownloadToCacheFileA 24" error.
Mar 18 2005
Walter wrote:Now we're getting somewhere. Check out www.digitalmars.com/faq.html#sysimportAh! Thanks. I thought I might have to do something like that, but was Hmm - I should perhaps be able to (in theory) make a script to look apparently the number of bytes its parameters are. That'd be more trouble than its worth for just the one function I need now, but might be useful in the future, and for other people. Hmm. (P.S. I noticed that Microsoft's link.exe no longer has a /convert option (at least in the link.exe in "Microsoft Visual C++ Toolkit 2003", which is supposed to be the same as the one in VS.NET 2003) - I'm mentioning this because http://www.digitalmars.com/ctg/coff2omf.html suggests running link /lib /convert file.lib to make the lib usable by coff2omf))
Mar 18 2005
SL wrote: > (P.S. I noticed that Microsoft's link.exe no longer has a /convertoption (at least in the link.exe in "Microsoft Visual C++ Toolkit 2003", which is supposed to be the same as the one in VS.NET 2003) - I'm mentioning this because http://www.digitalmars.com/ctg/coff2omf.html suggests running link /lib /convert file.lib to make the lib usable by coff2omf))It's not hard to find slightly older versions of LINK that still support the /convert flag. Google for MASM. The current MASM package has a LINK that works.
Mar 24 2005