Verwendung einer statischen Bibliothek in Visual Studio 2003



  • Hallo zusammen,
    für die Umsetzung eines Projektes habe ich eine API bekommen. Sie besteht aus vielen Header-Dateien (.h) und einer statischen Bibliothek (.lib).

    Ich habe bereits die Standard-Include und Standard-Lib Verzeichnisse entsprechend erweitert.

    Die Bibliothek hab ich folgendermaßen eingebunden:

    #pragma comment(lib, "myLIB.lib")
    

    (Ich hatte auch andere Varianten ausprobiert. Ich hab Sie einfach dem Projekt als Datei hinzugefügt bzw. Sie auch mal in den Compiler direktiven entsprechend angegeben)

    Die verschiedenen Methoden führten alle zu dem selben Ergebnis und Problem:

    Wenn ich alles kompiliere (problemlos) wird eine ausführbare Datei erstellt. Wenn ich diese Datei nun ausführe, erhalte ich jedoch folgende Fehlermeldung:
    "Die Anwendung konnte nicht gestartet werden, weil myLIB.dll nicht gefunden wurde!"

    Ich habe garkeine dynamische Bibliothek (DLL) mit der API bekommen, bzw. möchte die Bibliothek auch direkt in die ausführbare Datei linken und in diesem Fall von DLLs absehen.

    Wie kann ich Visual Studio mitteilen, dass die Bibliothek an die exe gebunden werden soll und ich garkeine DLL verwenden möchte ?

    Wissen aus dem Visual C++ 6.0 Kompendium über statische Bibliotheken (Kap. 13):

    Kompilierter Code einer Sammlung von Funktionen, Klassen, die aus einer oder mehreren Quelltextdateien stammen können. (Bearbeitung mittels dem Programm LIB.EXE). Statische Bibliotheken verfügen über eine Art "Inhaltsverzeichnis", das es dem Linker ermöglicht, nur die wirklich von der Anwendung benötigten Funktionen in die EXE-Datei einzubinden.



  • Hever schrieb:

    Sie besteht aus vielen Header-Dateien (.h) und einer statischen Bibliothek (.lib).

    Woher weisst Du dass dies eine "statische LIB" ist? Eine LIB-Datei kann sowohl "statisch erstellt" sein als auch "Verweise auf die DLL haben".

    Hever schrieb:

    Die Anwendung konnte nicht gestartet werden, weil myLIB.dll nicht gefunden wurde!

    Dann würde ich mich mal an den Hersteller der LIB wenden... er hat dir dann entweder die falsche LIB gegeben oder die DLL vergessen.
    Hast Du nur eine LIB-Datei oder mehrere bekommen?

    Hever schrieb:

    Wie kann ich Visual Studio mitteilen, dass die Bibliothek an die exe gebunden werden soll und ich garkeine DLL verwenden möchte ?

    Indem Du einfach keine Verweise auf diese DLL erzeugst! Wenn dies aber durch die LIB gemacht wird, dann hast Du die falsche LIB.



  • Hallo,

    Dann würde ich mich mal an den Hersteller der LIB wenden... er hat dir dann entweder die falsche LIB gegeben oder die DLL vergessen.
    Hast Du nur eine LIB-Datei oder mehrere bekommen?

    Nur eine Lib und ich hab nochmal geschaut wo die her kam:
    http://deutsche-boerse.com/dbag/dispatch/de/kir/gdb_navigation/technology/30_Access_Products/30_Values_API/30_Xetra_Downloads

    Woher weisst Du dass dies eine "statische LIB" ist? Eine LIB-Datei kann sowohl "statisch erstellt" sein als auch "Verweise auf die DLL haben".

    Soweit ich mich jedoch informiert habe sollten die Funktionen tatsächlich auch Funktionalität bereitstellen und nicht nur eine Definition oder ein Modell. Da es nur diese Lib gibt und das Paket eigentlich ausreichend sein sollte, bin ich davon ausgegangen, dass die lib statisch sein muss und ich nur zu doof bin sie einzubinden.



  • Die LIB enthält keine einzige Zeile Code, sondern nur Verweise auf die DLL... Frag am besten bei denen nach wie es Funktionieren soll...
    Die DLL enthält:

    Microsoft (R) COFF/PE Dumper Version 7.10.3077
    Copyright (C) Microsoft Corporation.  All rights reserved.
    
    Dump of file values.lib
    
    File Type: LIBRARY
    
    Archive member name at 8: /               
    4100DE6B time/date Fri Jul 23 11:46:19 2004
             uid
             gid
           0 mode
         1A8 size
    correct header end
    
        19 public symbols
    
          3DA __IMPORT_DESCRIPTOR_VALUES
          6E2 __NULL_IMPORT_DESCRIPTOR
          818 VALUES_NULL_THUNK_DATA
          A3E _VCI_Dispatch
          A3E __imp__VCI_Dispatch
          B76 _VCI_Submit
          B76 __imp__VCI_Submit
          AA8 _VCI_Login
          AA8 __imp__VCI_Login
          B0E _VCI_Logout
          B0E __imp__VCI_Logout
          96A _VCI_Connect
          96A __imp__VCI_Connect
          9D2 _VCI_Disconnect
          9D2 __imp__VCI_Disconnect
          BDE _VCI_Subscribe
          BDE __imp__VCI_Subscribe
          C48 _VCI_Unsubscribe
          C48 __imp__VCI_Unsubscribe
    
    Archive member name at 1EC: /               
    4100DE6B time/date Fri Jul 23 11:46:19 2004
             uid
             gid
           0 mode
         1B2 size
    correct header end
    
        11 offsets
    
            1      3DA
            2      6E2
            3      818
            4      A3E
            5      B76
            6      AA8
            7      B0E
            8      96A
            9      9D2
            A      BDE
            B      C48
    
        19 public symbols
    
            8 _VCI_Connect
            9 _VCI_Disconnect
            4 _VCI_Dispatch
            6 _VCI_Login
            7 _VCI_Logout
            5 _VCI_Submit
            A _VCI_Subscribe
            B _VCI_Unsubscribe
            1 __IMPORT_DESCRIPTOR_VALUES
            2 __NULL_IMPORT_DESCRIPTOR
            8 __imp__VCI_Connect
            9 __imp__VCI_Disconnect
            4 __imp__VCI_Dispatch
            6 __imp__VCI_Login
            7 __imp__VCI_Logout
            5 __imp__VCI_Submit
            A __imp__VCI_Subscribe
            B __imp__VCI_Unsubscribe
            3 VALUES_NULL_THUNK_DATA
    
    Archive member name at 3DA: VALUES.dll/     
    4100DE6B time/date Fri Jul 23 11:46:19 2004
             uid
             gid
           0 mode
         2CB size
    correct header end
    
    FILE HEADER VALUES
                 14C machine (x86)
                   3 number of sections
            4100DE6B time date stamp Fri Jul 23 11:46:19 2004
                 1EB file pointer to symbol table
                   8 number of symbols
                  E0 size of optional header
                 100 characteristics
                       32 bit word machine
    
    OPTIONAL HEADER VALUES
                 10B magic # (PE32)
                6.00 linker version
                   0 size of code
                   0 size of initialized data
                   0 size of uninitialized data
                   0 entry point (00000000)
                   0 base of code
                   0 base of data
                   0 image base (00000000 to FFFFFFFFFFFFFFFF)
                1000 section alignment
                 200 file alignment
                4.00 operating system version
                0.00 image version
                0.00 subsystem version
                   0 Win32 version
                   0 size of image
                   0 size of headers
                   0 checksum
                   2 subsystem (Windows GUI)
                   0 DLL characteristics
              100000 size of stack reserve
                1000 size of stack commit
              100000 size of heap reserve
                1000 size of heap commit
                   0 loader flags
                  10 number of directories
                   0 [       0] RVA [size] of Export Directory
                   0 [       0] RVA [size] of Import Directory
                   0 [       0] RVA [size] of Resource Directory
                   0 [       0] RVA [size] of Exception Directory
                   0 [       0] RVA [size] of Certificates Directory
                   0 [       0] RVA [size] of Base Relocation Directory
                   0 [       0] RVA [size] of Debug Directory
                   0 [       0] RVA [size] of Architecture Directory
                   0 [       0] RVA [size] of Global Pointer Directory
                   0 [       0] RVA [size] of Thread Storage Directory
                   0 [       0] RVA [size] of Load Configuration Directory
                   0 [       0] RVA [size] of Bound Import Directory
                   0 [       0] RVA [size] of Import Address Table Directory
                   0 [       0] RVA [size] of Delay Import Directory
                   0 [       0] RVA [size] of COM Descriptor Directory
                   0 [       0] RVA [size] of Reserved Directory
    
    SECTION HEADER #1
    .debug$S name
           0 physical address
           0 virtual address
          41 size of raw data
         16C file pointer to raw data (0000016C to 000001AC)
           0 file pointer to relocation table
           0 file pointer to line numbers
           0 number of relocations
           0 number of line numbers
    42100040 flags
             Initialized Data
             Discardable
             1 byte align
             Read Only
    
    RAW DATA #1
      00000000: 02 00 00 00 11 00 09 00 00 00 00 00 0A 56 41 4C  .............VAL
      00000010: 55 45 53 2E 64 6C 6C 28 00 13 10 07 00 00 00 03  UES.dll(........
      00000020: 00 00 00 00 00 00 00 06 00 00 00 FF 20 12 4D 69  ...........ÿ .Mi
      00000030: 63 72 6F 73 6F 66 74 20 28 52 29 20 4C 49 4E 4B  crosoft (R) LINK
      00000040: 00                                               .
    
    SECTION HEADER #2
    .idata$2 name
           0 physical address
           0 virtual address
          14 size of raw data
         1AD file pointer to raw data (000001AD to 000001C0)
         1C1 file pointer to relocation table
           0 file pointer to line numbers
           3 number of relocations
           0 number of line numbers
    C0300040 flags
             Initialized Data
             4 byte align
             Read Write
    
    RAW DATA #2
      00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
      00000010: 00 00 00 00                                      ....
    
    RELOCATIONS #2
                                                    Symbol    Symbol
     Offset    Type              Applied To         Index     Name
     --------  ----------------  -----------------  --------  ------
     0000000C  DIR32NB                    00000000         3  .idata$6
     00000000  DIR32NB                    00000000         4  .idata$4
     00000010  DIR32NB                    00000000         5  .idata$5
    
    SECTION HEADER #3
    .idata$6 name
           0 physical address
           0 virtual address
           C size of raw data
         1DF file pointer to raw data (000001DF to 000001EA)
         1C1 file pointer to relocation table
           0 file pointer to line numbers
           0 number of relocations
           0 number of line numbers
    C0200040 flags
             Initialized Data
             2 byte align
             Read Write
    
    RAW DATA #3
      00000000: 56 41 4C 55 45 53 2E 64 6C 6C 00 00              VALUES.dll..
    
    COFF SYMBOL TABLE
    000 000420FF ABS    notype       Static       | @comp.id
    001 00000000 SECT2  notype       External     | __IMPORT_DESCRIPTOR_VALUES
    002 C0000040 SECT2  notype       Section      | .idata$2
    003 00000000 SECT3  notype       Static       | .idata$6
    004 C0000040 UNDEF  notype       Section      | .idata$4
    005 C0000040 UNDEF  notype       Section      | .idata$5
    006 00000000 UNDEF  notype       External     | __NULL_IMPORT_DESCRIPTOR
    007 00000000 UNDEF  notype       External     | VALUES_NULL_THUNK_DATA
    
    String Table Size = 0x50 bytes
    
    Archive member name at 6E2: VALUES.dll/     
    4100DE6B time/date Fri Jul 23 11:46:19 2004
             uid
             gid
           0 mode
          FA size
    correct header end
    
    FILE HEADER VALUES
                 14C machine (x86)
                   2 number of sections
            4100DE6B time date stamp Fri Jul 23 11:46:19 2004
                  B9 file pointer to symbol table
                   2 number of symbols
                   0 size of optional header
                 100 characteristics
                       32 bit word machine
    
    SECTION HEADER #1
    .debug$S name
           0 physical address
           0 virtual address
          41 size of raw data
          64 file pointer to raw data (00000064 to 000000A4)
           0 file pointer to relocation table
           0 file pointer to line numbers
           0 number of relocations
           0 number of line numbers
    42100040 flags
             Initialized Data
             Discardable
             1 byte align
             Read Only
    
    RAW DATA #1
      00000000: 02 00 00 00 11 00 09 00 00 00 00 00 0A 56 41 4C  .............VAL
      00000010: 55 45 53 2E 64 6C 6C 28 00 13 10 07 00 00 00 03  UES.dll(........
      00000020: 00 00 00 00 00 00 00 06 00 00 00 FF 20 12 4D 69  ...........ÿ .Mi
      00000030: 63 72 6F 73 6F 66 74 20 28 52 29 20 4C 49 4E 4B  crosoft (R) LINK
      00000040: 00                                               .
    
    SECTION HEADER #2
    .idata$3 name
           0 physical address
           0 virtual address
          14 size of raw data
          A5 file pointer to raw data (000000A5 to 000000B8)
           0 file pointer to relocation table
           0 file pointer to line numbers
           0 number of relocations
           0 number of line numbers
    C0300040 flags
             Initialized Data
             4 byte align
             Read Write
    
    RAW DATA #2
      00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
      00000010: 00 00 00 00                                      ....
    
    COFF SYMBOL TABLE
    000 000420FF ABS    notype       Static       | @comp.id
    001 00000000 SECT2  notype       External     | __NULL_IMPORT_DESCRIPTOR
    
    String Table Size = 0x1D bytes
    
    Archive member name at 818: VALUES.dll/     
    4100DE6B time/date Fri Jul 23 11:46:19 2004
             uid
             gid
           0 mode
         115 size
    correct header end
    
    FILE HEADER VALUES
                 14C machine (x86)
                   3 number of sections
            4100DE6B time date stamp Fri Jul 23 11:46:19 2004
                  D5 file pointer to symbol table
                   2 number of symbols
                   0 size of optional header
                 100 characteristics
                       32 bit word machine
    
    SECTION HEADER #1
    .debug$S name
           0 physical address
           0 virtual address
          41 size of raw data
          8C file pointer to raw data (0000008C to 000000CC)
           0 file pointer to relocation table
           0 file pointer to line numbers
           0 number of relocations
           0 number of line numbers
    42100040 flags
             Initialized Data
             Discardable
             1 byte align
             Read Only
    
    RAW DATA #1
      00000000: 02 00 00 00 11 00 09 00 00 00 00 00 0A 56 41 4C  .............VAL
      00000010: 55 45 53 2E 64 6C 6C 28 00 13 10 07 00 00 00 03  UES.dll(........
      00000020: 00 00 00 00 00 00 00 06 00 00 00 FF 20 12 4D 69  ...........ÿ .Mi
      00000030: 63 72 6F 73 6F 66 74 20 28 52 29 20 4C 49 4E 4B  crosoft (R) LINK
      00000040: 00                                               .
    
    SECTION HEADER #2
    .idata$5 name
           0 physical address
           0 virtual address
           4 size of raw data
          CD file pointer to raw data (000000CD to 000000D0)
           0 file pointer to relocation table
           0 file pointer to line numbers
           0 number of relocations
           0 number of line numbers
    C0300040 flags
             Initialized Data
             4 byte align
             Read Write
    
    RAW DATA #2
      00000000: 00 00 00 00                                      ....
    
    SECTION HEADER #3
    .idata$4 name
           0 physical address
           0 virtual address
           4 size of raw data
          D1 file pointer to raw data (000000D1 to 000000D4)
           0 file pointer to relocation table
           0 file pointer to line numbers
           0 number of relocations
           0 number of line numbers
    C0300040 flags
             Initialized Data
             4 byte align
             Read Write
    
    RAW DATA #3
      00000000: 00 00 00 00                                      ....
    
    COFF SYMBOL TABLE
    000 000420FF ABS    notype       Static       | @comp.id
    001 00000000 SECT2  notype       External     | VALUES_NULL_THUNK_DATA
    
    String Table Size = 0x1C bytes
    
    Archive member name at 96A: VALUES.dll/     
    4100DE6B time/date Fri Jul 23 11:46:19 2004
             uid
             gid
           0 mode
          2C size
    correct header end
    
      Version      : 0
      Machine      : 14C (x86)
      TimeDateStamp: 4100DE6B Fri Jul 23 11:46:19 2004
      SizeOfData   : 00000018
      DLL name     : VALUES.dll
      Symbol name  : _VCI_Connect
      Type         : code
      Name type    : no prefix
      Hint         : 0
      Name         : VCI_Connect
    
    Archive member name at 9D2: VALUES.dll/     
    4100DE6B time/date Fri Jul 23 11:46:19 2004
             uid
             gid
           0 mode
          2F size
    correct header end
    
      Version      : 0
      Machine      : 14C (x86)
      TimeDateStamp: 4100DE6B Fri Jul 23 11:46:19 2004
      SizeOfData   : 0000001B
      DLL name     : VALUES.dll
      Symbol name  : _VCI_Disconnect
      Type         : code
      Name type    : no prefix
      Hint         : 1
      Name         : VCI_Disconnect
    
    Archive member name at A3E: VALUES.dll/     
    4100DE6B time/date Fri Jul 23 11:46:19 2004
             uid
             gid
           0 mode
          2D size
    correct header end
    
      Version      : 0
      Machine      : 14C (x86)
      TimeDateStamp: 4100DE6B Fri Jul 23 11:46:19 2004
      SizeOfData   : 00000019
      DLL name     : VALUES.dll
      Symbol name  : _VCI_Dispatch
      Type         : code
      Name type    : no prefix
      Hint         : 2
      Name         : VCI_Dispatch
    
    Archive member name at AA8: VALUES.dll/     
    4100DE6B time/date Fri Jul 23 11:46:19 2004
             uid
             gid
           0 mode
          2A size
    correct header end
    
      Version      : 0
      Machine      : 14C (x86)
      TimeDateStamp: 4100DE6B Fri Jul 23 11:46:19 2004
      SizeOfData   : 00000016
      DLL name     : VALUES.dll
      Symbol name  : _VCI_Login
      Type         : code
      Name type    : no prefix
      Hint         : 3
      Name         : VCI_Login
    
    Archive member name at B0E: VALUES.dll/     
    4100DE6B time/date Fri Jul 23 11:46:19 2004
             uid
             gid
           0 mode
          2B size
    correct header end
    
      Version      : 0
      Machine      : 14C (x86)
      TimeDateStamp: 4100DE6B Fri Jul 23 11:46:19 2004
      SizeOfData   : 00000017
      DLL name     : VALUES.dll
      Symbol name  : _VCI_Logout
      Type         : code
      Name type    : no prefix
      Hint         : 4
      Name         : VCI_Logout
    
    Archive member name at B76: VALUES.dll/     
    4100DE6B time/date Fri Jul 23 11:46:19 2004
             uid
             gid
           0 mode
          2B size
    correct header end
    
      Version      : 0
      Machine      : 14C (x86)
      TimeDateStamp: 4100DE6B Fri Jul 23 11:46:19 2004
      SizeOfData   : 00000017
      DLL name     : VALUES.dll
      Symbol name  : _VCI_Submit
      Type         : code
      Name type    : no prefix
      Hint         : 5
      Name         : VCI_Submit
    
    Archive member name at BDE: VALUES.dll/     
    4100DE6B time/date Fri Jul 23 11:46:19 2004
             uid
             gid
           0 mode
          2E size
    correct header end
    
      Version      : 0
      Machine      : 14C (x86)
      TimeDateStamp: 4100DE6B Fri Jul 23 11:46:19 2004
      SizeOfData   : 0000001A
      DLL name     : VALUES.dll
      Symbol name  : _VCI_Subscribe
      Type         : code
      Name type    : no prefix
      Hint         : 6
      Name         : VCI_Subscribe
    
    Archive member name at C48: VALUES.dll/     
    4100DE6B time/date Fri Jul 23 11:46:19 2004
             uid
             gid
           0 mode
          30 size
    correct header end
    
      Version      : 0
      Machine      : 14C (x86)
      TimeDateStamp: 4100DE6B Fri Jul 23 11:46:19 2004
      SizeOfData   : 0000001C
      DLL name     : VALUES.dll
      Symbol name  : _VCI_Unsubscribe
      Type         : code
      Name type    : no prefix
      Hint         : 7
      Name         : VCI_Unsubscribe
    
         Exports
    
           ordinal    name
    
                      _VCI_Connect
                      _VCI_Disconnect
                      _VCI_Dispatch
                      _VCI_Login
                      _VCI_Logout
                      _VCI_Submit
                      _VCI_Subscribe
                      _VCI_Unsubscribe
    
      Summary
    
              C3 .debug$S
              14 .idata$2
              14 .idata$3
               4 .idata$4
               4 .idata$5
               C .idata$6
    

Anmelden zum Antworten