Autor Beitrag
miickey23
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 19.04.05 19:18 
Hi Leute bin neu hier.
Vielleicht kann mir jemand helfen... Ich hab die ehrenvolle Aufgabe in meiner Schulklasse in einer Facharbeit eine dll in delphi zu schreiben in der ich eine seriennummer auswähle und danach wird installiert. Hab darüber noch null Plan !!!
Ich soll das ganze so einfach wie möglich machen ...
Kann mir vielleicht jemand helfen ???muss in 2 Wochen fertig sein .....

Danke schonmal
Karlson
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Di 19.04.05 19:27 
Ja, wo liegt das Problem?

1.) Funktion schreiben die Seriennummern auswählt. Suche in: Delphi-Forum, Delphi-Library TUTORIAL GRUNDWISSEN

2.) Funktion in DLL packen Suche in: Delphi-Forum, Delphi-Library DLL PROGRAMMIEREN Suche bei Google DLL PROGRAMMIEREN

3.) Über Programm auf die Funktion in der DLL zugreifen und SN auslesen. Siehe Pkt. 2.

4.) Programm installieren. Suche in: Delphi-Forum, Delphi-Library XCOPY Suche in: Delphi-Forum, Delphi-Library SHFILEOPERATION Suche bei Google ZLIB


Viel Spass :)
miickey23 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 19.04.05 19:28 
Boah das ist ja geil das ging ja aschnell DANKE ich werd mich dran veruchen :-)))))))) DANKeEEEE
Karlson
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Di 19.04.05 19:33 
gut, meld dich halt wenn du jetzt irgendwo nicht weiterkommst. Versuche auch mal die Suchfunktion...
miickey23 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Sa 23.04.05 08:27 
Hi Karlson,
hab noch ein Problem vielleicht kannst Du mir dabei helfen ???
Ich müsste den Quelltext unten von c++ in delphi umschreiben .....
Hast Du da n Plan ???? Bin dabei völligst überfordert...
Danke für Die Mühe
ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
// ValidateSN.cpp 
//
//***************************************************************************************
//  Beinhaltete Header Dateien
//***************************************************************************************

#include "stdafx.h"
#include <tchar.h>
#include <stdlib.h>
#include "sn_variablen.h"

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
           )
{
    return TRUE;
}

LONG WINAPI ValidateSN(HWND hwnd, LPSTR szSrcDir, LPSTR szSupport, LPSTR szSerialNum, LPSTR szDbase)
{
//***************************************************************************************
// Sichern der Seriennummer in einem eindimmensionalen Feld 
//***************************************************************************************
  
  TCHAR sn_temporaer[25];  // Temporäres eindimmensionales Feld für die SN deklarieren
  _tcscpy(sn_temporaer, szSerialNum);  // kopieren der einzelnen Teile der SN in das Array
  
//***************************************************************************************
// Aufschlüsseln der SN in einzelne Felder. Die Felder sind getrennt 
// durch Kennzeichen '-'.
// 32 Bit Pointer zeigt auf den Anfang der String- Felder  
//***************************************************************************************
  
  LPSTR sn_feld1 = _tcstok( sn_temporaer, trennzeichen );  // Erstes SN- Feld mit String- Werten
      LPSTR sn_feld2 = _tcstok( NULL, trennzeichen );    // Zweites SN- Feld mit Integer- Werten
    LPSTR sn_feld3 = _tcstok( NULL, trennzeichen );    // Drittes SN- Feld mit Sring- Werten

//***************************************************************************************
// Überprüfen der drei Einzelfelder der SN auf ihre Gültigkeit durch Aufruf der 
// Überprüfungs- Funktionen
//***************************************************************************************
  // Variable sn_Feld1 wird an Funktion Übergeben und der Rückgabewert löst bei 
  // UNGLEICHHEIT eine Messagebox im Installshield aus.
  
if (feld_ueberpruefung1(sn_feld1) != ueberpruefung_erfolg) 
  {
  MessageBox(GetFocus(), "Ungültige Seriennummer", "Warnung", MB_OK|MB_SYSTEMMODAL|MB_ICONWARNING);

    // MB_OK: Messagebox mit OK-Button
    // MB_ICONWARNING: Fenster mit Ausrufezeichen und Text Warnung und Ungültige SN
    // MB_SYSTEMMODAL: Alle Anwendungen werden gestoppt, bis User Meldung quittiert 
    // Außerdem bekommt das erscheinende Fenster den Focus auf den OK- Button
    
    return ueberpruefung_misslungen;

  }
//*********************************************************************************************
  else if (feld_ueberpruefung2(sn_feld2) != ueberpruefung_erfolg)
  {
  MessageBox(GetFocus(), "Ungültige Seriennummer", "Warnung", MB_OK|MB_SYSTEMMODAL|MB_ICONWARNING);
      return ueberpruefung_misslungen;

  }
//*********************************************************************************************
  else if (feld_ueberpruefung3(sn_feld3) != ueberpruefung_erfolg)
  {
  MessageBox(GetFocus(), "Ungültige Seriennummer", "Warnung", MB_OK|MB_SYSTEMMODAL|MB_ICONWARNING);
    return ueberpruefung_misslungen;
  }
  else
    return ueberpruefung_erfolg;
}


//*********************************************************************************************
//    Funktion feld_ueberpruefung1
//*********************************************************************************************
// Vergleich ob Seriennummer im Feld 1 der Angabe in der Header Datei entspricht
// => 'ABTGSR'

LONG feld_ueberpruefung1(LPSTR sn_feld1)  // deklaration der Funktion und Übergabe des Pointers
{
  // Im ersten Feld muss der String 'ABTGSR' vorhanden sein
  if (0 == _tcsicmp(sn_feld1, seriennummer_feld1))  // Vergleich auf Übereinstimmung
    return ueberpruefung_erfolg;
  else
    return ueberpruefung_misslungen;
}

//*********************************************************************************************
//    Funktion feld_ueberpruefung2
//*********************************************************************************************

LONG feld_ueberpruefung2(LPSTR sn_feld2)
{

  long lNumToValidate = atoi (sn_feld2);

  // Im zweite Feld muss einen Wert enthalten, der ein vielfaches von 5 ist
  if ((lNumToValidate % 5) == 0)
    return ueberpruefung_erfolg;
  else 
    return ueberpruefung_misslungen;
}

//*********************************************************************************************
//    Funktion feld_ueberpruefung3
//*********************************************************************************************
// Vergleich ob Seriennummer im Feld 2 der Angabe in der Header Datei entspricht
// => SCHREINERX

LONG feld_ueberpruefung3(LPSTR sn_feld3)  // deklaration der Funktion und Übergabe
{
  // Im dritten Feld muss der String 'SCHREINERX' vorhanden sein
  if (0 == _tcsicmp(sn_feld3, seriennummer_feld3))  // Vergleich auf Übereinstimmung
    return ueberpruefung_erfolg;
  else
    return ueberpruefung_misslungen;

}


Moderiert von user profile iconmatze: Code-Tag eingefügt.
Diabele$
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 53



BeitragVerfasst: Sa 23.04.05 08:46 
Man kann seine Beiträge auch editieren.
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Sa 23.04.05 08:57 
Zwischenfrage: Wenn Karlson das Zeug für dich da übersetzt, hast du deine Facharbeit quasi fertig, oder? Möchtest du es vielleicht nicht selbst probieren?
Du wist ja wohl nichts bekommen haben was für dich unmöglich ist.
miickey23 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Sa 23.04.05 09:48 
hi delphiphan,
ich hab absolut keinen Plan von C++ das ist mein Problem . Ich hab noch nie was damit zu tun gehabt. Vielleicht klärt das das ganze
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 23.04.05 09:55 
Das mag ja sein, aber es gibt bestimmt auch Delphi-Beispiele für dein Problem, oder? Ansonsten, die absolut groben Grundregeln beim Übersetzen von C nach Delphi:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
==              =
=               :=
!=              <>
%               mod

&&              and
||              or
!               not

&               and (binäre Verknüpfung)
|               or  (binäre Verknüpfung)

{               begin
}               end

Bei speziellen Dingen kannst du ja noch mal fragen.