AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Seltsames Linker/Compilerverhalten

Ein Thema von faux · begonnen am 5. Mai 2004 · letzter Beitrag vom 7. Mai 2004
Antwort Antwort
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#1

Seltsames Linker/Compilerverhalten

  Alt 5. Mai 2004, 14:33
Hi,

ich hab grad eine Unit geschrieben, nur kommt immer die Meldung "Funktion braucht einen Ergebnistyp", obwohl ich ganz sicher bei jeder Funktion einen habe.
Außerdem wird der fehler in einer Zeile angezegt, wo es keine Funktion gibt:

Delphi-Quellcode:
unit EasyRegistry;

interface //Hier tritt der Fehler auf

uses
  Windows, Registry;
weiß einer was man da machen kann?
Ich hab auch schon probiert den QT in eine neue Unit zu kopieren, aber mit wenig Erfolg.
Angehängte Dateien
Dateityp: pas easyregistry_147.pas (3,6 KB, 5x aufgerufen)
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von BluesKid
BluesKid

Registriert seit: 2. Sep 2003
Ort: NRW
133 Beiträge
 
Delphi 2005 Professional
 
#2

Re: Seltsames Linker/Compilerverhalten

  Alt 5. Mai 2004, 14:41
Moin moin

änder doch mal

function RegToStr(path, name: string); RootKey: HKEY): string; overload; in

function RegToStr(path, name: string; RootKey: HKEY): string; overload; ^^Die schließende Klammer wegmachen...

schönen Gruß

Sam
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#3

Re: Seltsames Linker/Compilerverhalten

  Alt 5. Mai 2004, 14:51
kurze zwischenfrage (ich geh davoin aus, das das duie lösung war):

was heisst dieses "overload" dahinter
oder auch ich glaub "digital"
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von BluesKid
BluesKid

Registriert seit: 2. Sep 2003
Ort: NRW
133 Beiträge
 
Delphi 2005 Professional
 
#4

Re: Seltsames Linker/Compilerverhalten

  Alt 5. Mai 2004, 14:52
*zack* .. So hab auch mal die .Create anweisungen aus den try...finally Blöcken geholt.

[edit]

@glkbkk

siehe OH :

Zitat:

Prozeduren und Funktionen überladen

Sie können an eine überladene Routine Parameter übergeben, die vom Typ her nicht den in den Deklarationen der Routine festgelegten Parametern entsprechen, die aber zuweisungs-kompatibel mit den Parametern in mehr als einer Deklaration sind. Dies wird häufig dann der Fall, wenn eine Routine mit verschiedenen Integer oder Reel-Typen überladen wird. Zum Beispiel:

Delphi-Quellcode:
procedure Store(X: Longint); overload;

procedure Store(X: Shortint); overload;
Wenn dies ohne Mehrdeutigkeiten zu erzeugen, möglich ist, ruft der Compiler in diesen Fällen die Routine auf, deren Parameter den Typ mit der kleinsten Reichweite besitzen, die für die eigentlichen Parameter in dem Aufruf ausreichend ist. (Konstantenausdrücke mit Reell-Werten haben immer den Typ Extended.)
[/edit]
Angehängte Dateien
Dateityp: pas easyregistry_136.pas (3,6 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Seltsames Linker/Compilerverhalten

  Alt 5. Mai 2004, 15:05
@BluesKid:

Danke, das war! Jetzt funktionierts...

Nur was genau war der fehler?
Ich kann keinen unterschied finden (bis auf zwei schließende klammern im interface, welche aber das problem nicht vollständig beheben...)
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von BluesKid
BluesKid

Registriert seit: 2. Sep 2003
Ort: NRW
133 Beiträge
 
Delphi 2005 Professional
 
#6

Re: Seltsames Linker/Compilerverhalten

  Alt 5. Mai 2004, 15:09
Vorher:

Delphi-Quellcode:

  function RegToStr(path, name: string); //<-- hier hat die function keinen Ergebnistyp
  RootKey: HKEY): string; overload; //<-- und es ist fraglich ob dir der Compiler das
                                    // durchgehen lassen würde ;-)
nacher:

Delphi-Quellcode:

function RegToStr(path, name: string; RootKey: HKEY): string; overload;
                                // ^^^^ jetzt stimmt
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Seltsames Linker/Compilerverhalten

  Alt 5. Mai 2004, 15:14
OK, danke...
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#8

Re: Seltsames Linker/Compilerverhalten

  Alt 7. Mai 2004, 15:07
ähm, einfach gesagt,
procedure machwas(a:integer); overload; bewirkt, das bei einem solchen aufruf

machwas(a);//typ shortint vor dem eigentlichen aufruf den short in nen int wandelt
richtig so?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Niko

Registriert seit: 23. Jun 2003
416 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Seltsames Linker/Compilerverhalten

  Alt 7. Mai 2004, 15:19
Obwohl's eigentlich OT ist:
Mit overload kannst du mehrere Prozeduren mit dem selben Namen erstellen, die unterschiedliche Parameter entgegennehmen. Der Comiler ruft dann automatisch die Prozedur auf, zu der die übergebenen Parameter passen.
"Electricity is actually made up of extremely tiny particles called electrons, that you cannot see with the naked eye unless you have been drinking." (Dave Barry)
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#10

Re: Seltsames Linker/Compilerverhalten

  Alt 7. Mai 2004, 17:55
das heisst der kompiler passt nicht die typen an, sondern sucht die passende procedure aus...


und override?
error-code-unterdrückung?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:06 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