AGB  ·  Datenschutz  ·  Impressum  







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

mal ne frage zu dll und pchar

Ein Thema von Dezipaitor · begonnen am 11. Mai 2003 · letzter Beitrag vom 11. Mai 2003
Antwort Antwort
Seite 1 von 2  1 2      
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#1

mal ne frage zu dll und pchar

  Alt 11. Mai 2003, 01:00
wenn ich ein interface aus klassen in delphi geschaffen habe, und dies in eine dll packen will, damit andere sprachen auch darauf zugreifen
können, wass muss ich da beachten?

besonders Strings...
ist da PCHAR vorteilhafter? auch in klassen?

thx
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#2
  Alt 11. Mai 2003, 01:39
Hallo Dezipaitor,
wenn Du beabsichtigst, DLL’s zu schreiben, die in Verbindung mit einer anderen Programmiersprache verwendet werden sollen, solltest Du bei der Wahl der verwendeten Datentypen einige Vorsicht walten lassen.

Byte, 1 Byte, 8-Bit-Wert, vorzeichenlos
Word, 2 Byte, 16-Bit-Wert vorzeichenlos
Cardinal, 4 Byte, 32-Bit-Wert vorzeichenlos
SmallInt, 1 Byte, 8-Bit-Wert vorzeichenbehaftet
ShortInt, 2 Byte, 16-Bit-Wert vorzeichenbehaftet
Integer, 4 Byte, 32-Bit-Wert vorzeichenbehaftet
AnsiChar, 1 Byte, ANSI Zeichen
WideChar, 2, Unicode Zeichen
PChar, 4 Byte, Zeiger auf nullterminierten String
Double, 8 Byte, 64-Bit Realwert
WordBool, Byte, Boolescher Wert
LongBool, 4 Byte, Boolescher Wert
THandle, 4 Byte, Windows Handle

s. vgl. Dr.Uwe Barlage und Matthias Hölzer – Direkte Windows API Programmierung

mit diesen Win32 Datentypen kannst Du ruhig arbeiten

bye
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#3
  Alt 11. Mai 2003, 03:01
Moin Zusammen,

@Duffy:
Wenn man es genau nimmt, muss bei den Typen cardinal und integer noch hinzugefügt werden, dass die Angabe nur bei 32-Bit Compilaten gilt, da sie als generische Datentypen angesehen werden.
Deren Verwendung muss also beim Wechsel des Compilers (z.B. auf einen 64 Bit Compiler) berücksichtigt werden.
PChar ist übrigens ein Zeiger auf einen nullerminierten ANSI-String.

Da THandle weiter nichts als ein integer ist (gemäss Typdeklaration in Delphi), finde ich die Umschreibung es handele sich um ein Windows Handle interessant, denn in der API werden ja Unmengen verschiedener Handeltypen verwendet, die in C ja auch vom Compiler unterschieden werden.

@Dezipaitor:
Der Datentyp string hat, wenn er denn als Hugestring deklariert ist (Standard), den Nachteil nur für Borlandsprachen vorhanden zu sein.
Um Probleme zu vermeiden, die sich aus der Verwendung des Types string ergeben zu vermeiden (siehe auch den Kommentar, zu Beginn einer von der IDE erzeugten Rumpf DLL), wäre es wohl ganz sinnvoll darauf zu verzichten, und PCHAR bzw PWideChar zu verwenden.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#4
  Alt 11. Mai 2003, 12:50
Hallo,
@Christian Seehase ... Einfach wäre auch gegangen
bye
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5
  Alt 11. Mai 2003, 12:59
Zitat von Christian Seehase:
in der API werden ja Unmengen verschiedener Handeltypen verwendet, die in C ja auch vom Compiler unterschieden werden.
Aber nur, wenn #define STRICT deklariert ist.


Zitat:
Um Probleme zu vermeiden, [...] wäre es wohl ganz sinnvoll darauf zu verzichten, und PCHAR bzw PWideChar zu verwenden.
WideString kann auch verwendet werden, da dieser dem Typ LPWSZ entspricht, was wiederum ein PWideChar ist. Nur kann man mit WideString besser (im Sinne von einfacher) arbeiten als mit PWideChar.
Unter Linux kann man WideString jedoch nicht verwenden, da er dort wie AnsiString mit Referenzierung arbeitet.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#6
  Alt 11. Mai 2003, 13:14
Moin Duffy,

Zitat von Duffy:
... Einfach wäre auch gegangen
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#7
  Alt 11. Mai 2003, 13:24
Hallo,
es ging doch darum, wie heute DLL's geschrieben werden. Selbst Microsoft DLL's werden nicht kompatibel zu 64-Bit sein. Wenn man keine homogene Plattform einsetzt oder?.
bye
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#8
  Alt 11. Mai 2003, 16:35
Moin Duffy,

da in den Headern der Windows API schon gesteuert wird, ob eine Anwendung für 64 Bit erstellt werden soll oder nicht, wäre ich mir da nicht so sicher. Windows für 64 Bit existiert ja.
Ich fand's nur erwähnenswert, dass man daran denken sollte, dass so manche Datentypen eine compilerabhängigen Wertebereich haben.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#9
  Alt 11. Mai 2003, 16:57
Hallo,
lassen wir’s gut sein. Über solche Themen kann man stundenlang diskutieren und ganze Elaborate verfassen. Also nicht böse sein, bis bald mal wieder.
bye
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#10

Frage

  Alt 11. Mai 2003, 19:26
Und wieder mal habe ICH die dümmste Frage von allen(versteht es ich bin einer der jüngsten )

Für was steht dll???
Und was bringt es sich(Hab's noch nie in Delphi gebraucht--> weis ja auch nicht obs wichtig ist zum programmieren )

Also danke im Voraus
Nico Müller
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:16 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