Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   C++ Fehler LNK2019 (https://www.delphipraxis.net/193433-fehler-lnk2019.html)

EWeiss 30. Jul 2017 22:40

Fehler LNK2019
 
Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
Zitat:

Fehler LNK2019 Verweis auf nicht aufgelöstes externes Symbol "_KVideo_Initialize@8" in Funktion ""int __cdecl InitInstance(struct HINSTANCE__ *,int)" (?InitInstance@@YAHPAUHINSTANCE__@@H@Z)".
Zitat:

Fehler LNK1120 1 nicht aufgelöste Externe
KVideo_Initialize@8 ist aber vorhanden.
Sowohl in der LIB als auch in der DLL.

Was kann ich machen? bzw. was läuft hier falsch.
Die DLL befindet sich im DEBUG Folder.

Sorry hat sich erledigt!
Habe zwar die LIB zur Release addiert aber nicht zu Debug. ja, ja C++ halt

gruss

himitsu 30. Jul 2017 23:26

AW: Fehler LNK2019
 
Was ist mit dem _ am Anfang? :zwinker:

EWeiss 30. Jul 2017 23:31

AW: Fehler LNK2019
 
Zitat:

Zitat von himitsu (Beitrag 1377762)
Was ist mit dem _ am Anfang? :zwinker:

Was meinst du damit?
Wird nicht benötigt.

Das reicht!
Code:
   if (!KVideo_Initialize(MovieHandle, OnPlayerEvent))
   {
       return FALSE;
   }
und es wird kein Fehler oder Warnung geworfen ;)

gruss

himitsu 31. Jul 2017 02:15

AW: Fehler LNK2019
 
Zitat:

Verweis auf nicht aufgelöstes externes Symbol "_KVideo_Initialize@8"
und das Foto der Exporttabelle sagten da was Anderes.

EWeiss 31. Jul 2017 15:27

AW: Fehler LNK2019
 
Zitat:

Zitat von himitsu (Beitrag 1377765)
Zitat:

Verweis auf nicht aufgelöstes externes Symbol "_KVideo_Initialize@8"
und das Foto der Exporttabelle sagten da was Anderes.

Ja du hast recht bin das gerade alles am beheben.
Aber das Symbol ist jetzt aufgelöst der Unterstrich ist jedoch noch vorhanden.
Obwohl ich der Meinung bin das ich die Datentypen richtig interpretiert habe also BOOL 4Bytes usw..
meckert C++ immer noch rum das einige Funktionen nicht aufgelöst sind.

Kann es sein das die Anzahl der Bytes in C++ und Delphi für die Datentypen unterschiedlich sind?

gruss

himitsu 31. Jul 2017 15:43

AW: Fehler LNK2019
 
Ja


Delphi Boolean = 1 Byte
C++/Delphi BOOL aka LongBool = 4 Byte


Delphi Boolean = Byte (False/True: 0 und 1)
C++ BOOL = INT (False/True: 0 und -1)

EWeiss 31. Jul 2017 16:11

AW: Fehler LNK2019
 
Zitat:

Delphi Boolean = 1 Byte
C++/Delphi BOOL aka LongBool = 4 Byte
Ok darauf habe ich geachtet daher verwende ich im Code überall BOOL so das es hier keine Überschneidungen gibt.
Na gut der Compiler in C++ meldet mir die richtige Anzahl von daher kann ich das im Nachhinein berichtigen.

Danke.

gruss

himitsu 31. Jul 2017 16:17

AW: Fehler LNK2019
 
Ich weiß nicht mehr wo das genau her war, aber ich hab da noch was in Erinnerung, dass es irgendwo einen Unterschied zwischen bool (1 Byte) und BOOL (4 Byte) gab, oder irgendwie sowas ... Delphi jedenfalls ist case-insensitiv.

bra 1. Aug 2017 09:16

AW: Fehler LNK2019
 
bool ist in C++ ein Schlüsselwort, BOOL ist eine Konstante (vom Typ int).

EWeiss 1. Aug 2017 10:45

AW: Fehler LNK2019
 
Zitat:

Zitat von bra (Beitrag 1377818)
bool ist in C++ ein Schlüsselwort, BOOL ist eine Konstante (vom Typ int).

Es ging mir letztendlich darum warum obwohl ich wie hier zu sehen die Bytes meiner Meinung nach korrekt
zusammen gezählt habe trotzdem vom C++ Linker ungültige Importes gemeldet wurden.
bsp. Auszug
Code:
LIBRARY KVideoPlayer

DESCRIPTION 'KVideoPlayer Def Module'

EXPORTS
  KVideo_CloseFile@0
  KVideo_CreateOverlayBaseImage@17
  KVideo_DisplayModeChanged@4
  KVideo_GetCapturedImage@8
  KVideo_GetLastError@2 
  KVideo_GetMediaInfoText@4 
  KVideo_GetMediaProperty@4
Delphi-Quellcode:
  KVideo_CloseFile                   name 'KVideo_CloseFile@0',                      
  KVideo_CreateOverlayBaseImage      name 'KVideo_CreateOverlayBaseImage@17',        
  KVideo_DisplayModeChanged          name 'KVideo_DisplayModeChanged@4',              
  KVideo_GetCapturedImage            name 'KVideo_GetCapturedImage@8',                
  KVideo_GetLastError                name 'KVideo_GetLastError@2',                    
  KVideo_GetMediaInfoText            name 'KVideo_GetMediaInfoText@4',                
  KVideo_GetMediaProperty            name 'KVideo_GetMediaProperty@4',
gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz