1。project setting-->link -->object/liberary module 通过向导生成一个helloworld console project时这里有以下几个lib(kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib )
我是这样理解的:这些lib 是console 程序中可能用到的dll对应的lib,按F5调试的时候在output输出的是用到的dll名字。请问对吗?2。为什么我把project setting-->link -->object/liberary module 中的lib全删掉程序仍然能运行!  3。project setting-->link -->object/liberary module 在这个标签下面有个ignore all default lib 这句是什么意思??  ignore了什么库!

解决方案 »

  1.   

    补充一个问题! 4。调试的时候输出:
    Loaded 'C:\WINNT\system32\ntdll.dll', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\wsock32.dll', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\KERNEL32.DLL', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\ws2_32.dll', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\msvcrt.dll', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\ADVAPI32.DLL', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\rpcrt4.dll', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\ws2help.dll', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\RNR20.DLL', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\USER32.DLL', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\GDI32.DLL', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\dnsapi.dll', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\imm32.dll', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\lpk.dll', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\usp10.dll', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\IPHLPAPI.DLL', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\icmp.dll', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\mprapi.dll', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\samlib.dll', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\NETAPI32.DLL', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\secur32.dll', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\netrap.dll', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\WLDAP32.DLL', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\OLE32.DLL', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\OLEAUT32.DLL', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\activeds.dll', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\adsldpc.dll', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\rtutils.dll', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\SETUPAPI.DLL', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\USERENV.DLL', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\RASAPI32.DLL', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\RASMAN.DLL', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\TAPI32.DLL', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\comctl32.dll', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\shlwapi.dll', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\DHCPCSVC.DLL', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\winrnr.dll', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\rasadhlp.dll', no matching symbolic information found.
    The thread 0x87C has exited with code 0 (0x0).
    The thread 0xA04 has exited with code 0 (0x0).
    The program 'C:\Downloads\ipadress\testgetbyname\Debug\testgetbyname.exe' has exited with code 0 (0x0).这上面load的dll和生成文件用dependency walker 看使用的dll , 有所不同! 上面load的一些dll 没有在dependency walker 中出现!  为什么??
      

  2.   

    1.有些LIB是静态的,没有DLL,有些LIB是动态的,只是为了链接到DLL
    2.LIB只是为了链接,链接后LIB中的信息已经被用于EXE,LIB在运行时不起作用
    3.忽略开发环境默认需要链接的库文件
    4.有些DLL在中间过程中被优化掉而不参与链接
      

  3.   

    是这样的,
     工程设置中设置要的DLL,LIB,是说本工程可能要用到的DLL,(你可以再加几个别的DLL,LIB库,并不会影响程序的),但调试的时候都需要被载入。因此会出现你说的调试中:
    Loaded 'C:\WINNT\system32\winrnr.dll', no matching symbolic information found.
    Loaded 'C:\WINNT\system32\rasadhlp.dll', no matching symbolic information found.
    这样的信息。
    2。为什么我把project setting-->link -->object/liberary module 中的lib全删掉程序仍然能运行!  
    这个的原因就是你的程序中,根本没有用到这些LIB库,删掉当然无所谓。而dependency walker 看使用的dll 是真正被使用了的DLL,也就是说你的程序肯定用到了的,必不可少的DLL和对应的LIB。