AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Projekt von Delphi 2007 auf Delphi 2010 umstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Projekt von Delphi 2007 auf Delphi 2010 umstellen

Ein Thema von Jerry · begonnen am 18. Jan 2011 · letzter Beitrag vom 18. Jan 2011
Antwort Antwort
Jerry

Registriert seit: 24. Feb 2005
Ort: Schweiz/Thurgau
138 Beiträge
 
Delphi 2010 Professional
 
#1

Projekt von Delphi 2007 auf Delphi 2010 umstellen

  Alt 18. Jan 2011, 09:23
Hallo zusammen

Ich brauche die Unit JwaWinType.
Beim Kompilieren erhalte ich folgende Meldung: Inkompatible Typen Char und AnsiChar.
Wie muss ich den Code anpassen, dass es für Delphi 2010 stimmt? (ist im unteren code entsprechend markiert)

Vielen Dank für Eure Info!
Grüsse Jerry

Delphi-Quellcode:
procedure GetProcedureAddress(var P: Pointer; const ModuleName, ProcName: string);
var
  ModuleHandle: HMODULE;
begin
  if not Assigned(P) then
  begin
    ModuleHandle := GetModuleHandle(PChar(ModuleName));
    if ModuleHandle = 0 then
    begin
      ModuleHandle := LoadLibrary(PChar(ModuleName));
      if ModuleHandle = 0 then
        raise EJwaLoadLibraryError.CreateFmt(RsELibraryNotFound, [ModuleName]);
    end;
    P := Pointer(GetProcAddress(ModuleHandle, PChar(ProcName))); // hier ist die Fehlermeldung !!!!
    if not Assigned(P) then
      raise EJwaGetProcAddressError.CreateFmt(RsEFunctionNotFound, [ModuleName, ProcName]);
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Projekt von Delphi 2007 auf Delphi 2010 umstellen

  Alt 18. Jan 2011, 09:33
Diese JWA (JediWindowsApi) ist uralt und nicht mehr für eine Verwendung vorgesehn ... steig mal auf was Neueres um, da es darin auch ein paar kleinere Unicode-Problemchen gibt und es somit unter D2009+ etwas rumzickt.
http://www.delphipraxis.net/155173-w...ml#post1061282 (genau das selbe Problem wurde in diesem Thread auch mit besprochen)

Ich selber nutzte derartige Codes auch nur noch für Testzwecke und zum Abgucken von API-Headern ... aber von eine richtigen Einsatz dieser Codes rate ich eher ab.
$2B or not $2B

Geändert von himitsu (18. Jan 2011 um 09:36 Uhr)
  Mit Zitat antworten Zitat
Jerry

Registriert seit: 24. Feb 2005
Ort: Schweiz/Thurgau
138 Beiträge
 
Delphi 2010 Professional
 
#3

AW: Projekt von Delphi 2007 auf Delphi 2010 umstellen

  Alt 18. Jan 2011, 09:40
Hallo himitus

ja da hast du recht... Sie ist wirklich alt.

Ich brauche die Unit um RDC-direkt per Mausklick zu starten. Ich habe mir "nur" das nötigste aus dem JediWindowsAPI gezogen.

Vielleicht reicht ja eine kleine Anpassung und ich kann das "alte" trotzdem gut verwenden?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Projekt von Delphi 2007 auf Delphi 2010 umstellen

  Alt 18. Jan 2011, 09:47
Wie schaut die Signatur der Funktion "GetProcAddress" aus?
Ich tipp mal darauf das die ein PAnsiChar benötigt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Jerry

Registriert seit: 24. Feb 2005
Ort: Schweiz/Thurgau
138 Beiträge
 
Delphi 2010 Professional
 
#5

AW: Projekt von Delphi 2007 auf Delphi 2010 umstellen

  Alt 18. Jan 2011, 09:53
Hallo Bernhard

Hier die geforderte Information:


function GetProcAddress(hModule: HMODULE; lpProcName: LPCSTR): FARPROC; external kernel32 name 'GetProcAddress';

Kannst Du was damit anfangen?

Ich habe den Code in der Zwischenzeit folgendermassen geändert:

P := Pointer(GetProcAddress(ModuleHandle, PAnsiChar(ProcName)));

Der Kompiler schluckt den Code, gibt aber eine Warung aus, die heisst: Bedenkliche Typumwandlung von String in PAnsiChar.

Gruss Jerry
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Projekt von Delphi 2007 auf Delphi 2010 umstellen

  Alt 18. Jan 2011, 10:10
Du brauchst noch eine lokalen AnsiString

Delphi-Quellcode:
var
  ProcNameAnsi: AnsiString;
begin
  ...
  ProcNameAnsi := ProcName;
  P := Pointer(GetProcAddress(ModuleHandle, PAnsiChar(ProcNameAnsi)));
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Jerry

Registriert seit: 24. Feb 2005
Ort: Schweiz/Thurgau
138 Beiträge
 
Delphi 2010 Professional
 
#7

AW: Projekt von Delphi 2007 auf Delphi 2010 umstellen

  Alt 18. Jan 2011, 10:22
Vielen Dank, das scheint zu klappen.

Erhalte aber trotzdem noch folgende Fehlermeldung:

W1058 Implizite String-Umwandlung mit potetiellem Datenverlust von String zu AnsiString.

Ich denke aber ist bei mir nicht relevant? Was meinst Du?

Gruss Jerry.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

AW: Projekt von Delphi 2007 auf Delphi 2010 umstellen

  Alt 18. Jan 2011, 12:48
Das ist keine Fehlermeldung sondern eine Warnung Und die sagt nichts anderes aus als dass bei der Umwandlung zu Ansistring Daten verloren gehen können. Ist ja auch logisch, man muss sich dessen eben nur bewusst sein (zum Beispiel wenn umlaute etc. enthalten sind das diese je nach Sprache bei der Umwandlung verloren gehen)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Jerry

Registriert seit: 24. Feb 2005
Ort: Schweiz/Thurgau
138 Beiträge
 
Delphi 2010 Professional
 
#9

AW: Projekt von Delphi 2007 auf Delphi 2010 umstellen

  Alt 18. Jan 2011, 13:05
Super, vielen Dank. Jedenfalls passt es so, es funzt.

Grüsse Jerry
  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 16:21 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