was man so erlebt beim migrieren von Clipper nach Xbase++

Auf dem Weg von Clipper, FoxPro u.ä. nach Xbase++

Moderator: Moderatoren

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

was man so erlebt beim migrieren von Clipper nach Xbase++

Beitrag von AUGE_OHR »

hi,

so ich fange hier einfach mal einen neuen Thread an was man alles
erlebt wenn man eine Cl*pper Application nach Xbase++ "convertieren"
will.

Ausgangs Basis : S87 / V5.01a Clipper Application mit ca. 40 *.PRG
*.RMK : CLIPPER $* -M -B -N
*.LNK : FILE TIKMENUE
MAP = TIK52 A,S
BLINKER EXECUTABLE EXTENDED

nachdem ich also das ganze "Backup" (1994) entpackt und neu compiliert
habe kam bei starten unter XP sp2 (nicht für Cl*pper "optimiert" !!! )
gleich eine "schöne" Fehlermeldung :
E:\VO\TIK>tik52.exe

BLX286 : 1313 : Ausnahmefehler (Exception-Fehler) 0D : Allgemeine Schutzverletzu
ng, Code = 0000h

Aktiver Host ist DPMI (v3.30 iP? 15360 Kb)

Reg Wert Grenze Base Flags Segment Modul Datei
CS 025F F857 03398658 FB00 0D TIK52 E:\VO\TIK\TIK52.EXE
DS 039F 9FFF 03452FB4 F300 ****
ES 0000 ****
SS 02C7 FFFF 03383554 F300 1A TIK52 E:\VO\TIK\TIK52.EXE

[Code-Byte CS] 0C 8B FB 8B F0 1E 8E DA [IP] A5 A5 A5 A5 1F 2B C0 5E 5F 8B

[Register] AX=9D14 BX=0000 CX=0000 DX=039F CS:IP=025F:D16E
SI=9D14 DI=0000 BP=7D7A SP=7D70
FL=3202 NV UP EI NT PL NZ NA PO NC

[Stackwert SS] 7D72 E1BA 025F 003C 038F 039F 02C7 4CA0 0010 30FC 039F 0000
[SP] 02C7 0010 0209 0000 0000 7D8A 77D2 023F 0000 0000 9D14 039F

[Stackrahmen SS] 039F 02C7 4CA0 0010 30FC 039F 0000 02C7 0010 0209 0000 0000
[BP] 7D8A 77D2 023F 0000 0000 9D14 039F 029F 7DC6 0B77 0227 0000
na toll dachte ich mir, aber das XP sp2 System war ja nun nicht für
Cl*pper "optimiert". Trotzdem wollte ich natürlich wissen warum es
den GPF Fehler gab und hab es dann getestet :
BLIGPF v4.0 - Extrahiert Info über GPF-Fehler aus Blinker 3.x/4.x MAP-Dateien
(c)1994-1996 SuccessWare Int'l ♦ The Data Driver Pioneers ♦ 909-699-9657

TIK52.MAP wird abgesucht: 3218

Symbol-Adresse : 000D:D14A
Symbol-Typ : Res
Symbol-Name : __GTWPOS
Offset In Fktn. : 24h
schlussendlich hat sich dann mein MRDEBUG.LIB als der "Übertäter"
rausgestellt den wir aber für Xbase++ eh nicht gebrauchen können

Code: Alles auswählen

Regel No. 1 : es können keine Clipper 16-Bit Lib´s für Xbase++ verwendet werden
so nun aber mal ran an Xbase++.
per "command.com" (cmd geht nicht ? ) wird mit :

Code: Alles auswählen

DIR *.PRG /B > PROJECT.TXT
eine Textdatei erstellt. die "Project" XPJ Datei erstellen wir nun mit

Code: Alles auswählen

PBUILD @PROJECT.TXT
Nun müssen wir uns als erstes das "Main" Modul schnappen und

Code: Alles auswählen

PROCEDURE MAIN
statt "PROCEDURE xyz" verwenden. Nachdem wird da gemacht haben
müssen wir und nur noch die "PROJECT.XPJ" vornehmen und paar
"Anpassung" vornehmen. Unter

Code: Alles auswählen

[PROJECT.XPJ]
    PROJECT.EXE

[PROJECT.EXE]
    xyz.PRG
ändern wir "PROJECT.EXE" in unseren gewünschten Namen und setzten
unser "Main" PRG gleich an die 1st Stelle. somit kann man mit.

Code: Alles auswählen

PBUILD PROJECT.XPJ
den ersten Versuch unternehmen ... und die ersten "Fehlermeldungen"

Da man die unter Windows, ohne VX, so schlecht sieht verwende ich
folgenden "BAT"ch File :

Code: Alles auswählen

pbuild project.xpj > waslos.txt
start notepad waslos.txt
Die ersten "Fehler" Meldungen betraffen vor allem "KEY" Words die ich
"damals" benutzt habe und Cl*pper die "schluckte", aber Xbase++ ist
da viel "penibler".

Das nächste "Problem" ist nun folgenden Konstruktion :

Code: Alles auswählen

FUNCTION tbm2
   PARAMETERS neuindex

   LOCAL first_flag  := .T.
Das "mag" Xbase++ nicht ... warum ? sehen wir doch mal ins Xbase++ Help File
Die Deklaration von Parametern kann allerdings auch mit dem Schlüsselwort PARAMETERS erfolgen. In diesem Fall werden die Parameter als Variablen der Speicherklasse PRIVATE erzeugt.
aha ... nun "klingelt" es ... oder ?

nun Xbase++ nimmt es auch da "penibler" und mag keine LOCAL "nach"
einer PRIVATE ... und das "könnte" einen "Rattenschwanz" haben ...

um nun nicht den ganzen "funktionsfähigen" Source zu verändern kann
man die "Konstante"

Code: Alles auswählen

#IFDEF __XPP__
         < XBase++ code >
#ELSE
         < Cl*pper Code >
#ENDIF
benutzen sodas man weiterhin "seinen" Cl*pper verwenden kann.

nun zu nächsten "grösserem" Problem :
CLIPPER $* -M -B -N
das "-M" bedeutet ja das der *.PRG Name dann "übernommen" wird
und als "Procedure" Namen fungiert ... aber nicht so bei Xbase++ :(

ich hatte mir nun damals ein kleines Tool geschrieben um in jedes *.PRG,
nach den "#include" die Zeile "PROCEDURE xyz" zu schreiben ...

leider hab ich es auf dem "neuen" PC nicht gefunden, aber ich wollte es
ja nun wissen also "auf die schnelle" nochmal "gestrickt" :

Code: Alles auswählen

#include "Directry.ch"
#define CRLF Chr(13)+Chr(10)

PROCEDURE Main(cAction)
LOCAL saPrgFiles
   // Create array with PRG file names
   saPrgFiles := Directory("*.PRG")
   IF Empty( saPrgFiles )
      CLS
      ?
      ? "No PRG files found"
      QUIT
   ENDIF
   IF PCOUNT() = 0
      ALERT("Syntax : PROCINTO [INSERT]")
      QUIT
   ENDIF

   DO CASE
      CASE UPPER(cAction) = "INSERT" ; AEval( saPrgFiles, {|x| DONOW( x[F_NAME] )  })
   ENDCASE
RETURN

PROCEDURE DONOW(cPrgFile)
LOCAL scPrgText, tcPrgText := ""
LOCAL i, iMax
LOCAL cText := ""
LOCAL cDummy
LOCAL cOut  := StrTran(cPrgFile,".PRG",".XRG")
LOCAL cPRG  := StrTran(cPrgFile,".PRG","")
LOCAL lNowMust := .F., lDidit:= .F.

   CLS
   IF UPPER(cPrgFile) = "PROCINTO.PRG"  // this Source
      RETURN
   ENDIF
ALTD()
   scPrgText := Memoread( cPrgFile )
   iMax := MlCount( scPrgText, 250,,.F. )      // .F. = until (Chr(13)+Chr(10))
   FOR i = 1 TO iMax
   ?  cText  := RTRIM(MemoLine( scPrgText, 250, i,,.F. )) // .F. = until (Chr(13)+Chr(10))
      cDummy := UPPER(LTRIM(cText))
      DO CASE
         CASE EMPTY(cDummy)
         CASE SUBSTR(cDummy,1,1)  = "*"
         CASE SUBSTR(cDummy,1,1)  = "#"
         CASE SUBSTR(cDummy,1,4)  = "PROC" .AND. .NOT. lDidit ; lDidit:= .T.
         CASE SUBSTR(cDummy,1,4)  = "FUNC" .AND. .NOT. lDidit ; lDidit:= .T.

         CASE SUBSTR(cDummy,1,2)  = "/*"
         CASE SUBSTR(cDummy,1,2)  = "*/"

         CASE SUBSTR(cDummy,1,4)  = "LOCA" .AND. .NOT. lDidit ; lNowMust := .T.
         CASE SUBSTR(cDummy,1,4)  = "PRIV" .AND. .NOT. lDidit ; lNowMust := .T.

         CASE SUBSTR(cDummy,1,4)  = "STAT"

      OTHERWISE
         IF lDidit
         ELSE
            lNowMust := .T.
         ENDIF
      ENDCASE
      IF lNowMust
         IF lDidit
         ELSE
            lDidit:= .T.
            tcPrgText += "PROCEDURE "+cPRG+CHR(9)+CHR(9)+"// insert by Xbase++ "+CRLF
         ENDIF
      ENDIF
      tcPrgText += cText+CRLF
   NEXT
   MemoWrit( cOut, tcPrgText)

RETURN
nun sollte der Source "grundsätzlich" compilierbar/linkfähig sein, aber
die nächsten Probleme warten schon ...

gruss by OHR
Jimmy
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Rolf Ramacher »

Hi zusammen,

um solches zu vermeiden, mache ich es so, daß ich es so, daß ich nur die mathematik aus clipper übernehme und den Rest neu programme.

Ist zwar mehr Aufwand, aber dafür m.E. eine saubere Lösung.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Teil 2 : Die Vorbereitung

Beitrag von AUGE_OHR »

hi,
Nachdem wir im letzten Abschnitt die *.PRG „grob“ bearbeitet haben, geht es nun an
den „Feinschliff“. Beim starten des „BAT“ch File bekomme ich zunächst immer wieder
„Fehlermeldungen“ das ich „KEY“-Words verwendet habe und muss die zunächst erst-
mal „korrigieren“ was noch relative „leicht“ zu bewerkstelligen ist.

Dann kam ein PRG welches folgende Zeile im Source hatte :

Code: Alles auswählen

SET FUNCTION 10 TO xyz
Das „mag“ Xbase++ gar nicht ... (siehe auch Help.File)
Da jedoch

Code: Alles auswählen

SET KEY -9 TO xyz
oder
SetKey( K_F10, {|| xyz() } ) 
funktionieren ist das keine grosse „Sache“ und schnell zu beheben.

Immer wieder bekomme ich nun die „Fehlermeldung“ wegen PARAMETER, dessen
Erklärung ich im ersten Teil schon vorweg geschickt habe, wenn ich „danach“ dann
LOCAL/STATIC Deklarationen machen.

Xbase++ verlangt also die „richtige“ Reihenfolge :
LOCAL – STATIC – PRIVATE/PUBLIC

Nachdem ich nun alle 40 PRG Module durchgegangen bin liess sich dann irgendwann
Tatsächlich der gesamte Source „compilieren“ ... aber beim „linken“ gibt es noch viele
„Fehlermeldungen“
TIKMENUE.obj: error ALK2102: unresolved external symbol CLOCK24
TIKMENUE.obj: error ALK2102: unresolved external symbol HELP_TIK
TIKMENUE.obj: error ALK2102: unresolved external symbol UNCLOCK24
TIKMENUE.obj: error ALK2102: unresolved external symbol SWPDISMSG
TIKMENUE.obj: error ALK2102: unresolved external symbol SWPGETKEY
TIKMENUE.obj: error ALK2102: unresolved external symbol SWPNOBOOT
TIKMENUE.obj: error ALK2102: unresolved external symbol ISEMS
TIKMENUE.obj: error ALK2102: unresolved external symbol SWPUSEEMS
TIKMENUE.obj: error ALK2102: unresolved external symbol EXTMEM
TIKMENUE.obj: error ALK2102: unresolved external symbol SWPUSEXMS
TIKMENUE.obj: error ALK2102: unresolved external symbol SWPUSEUMB
TIKMENUE.obj: error ALK2102: unresolved external symbol SWPCURDIR
TIKMENUE.obj: error ALK2102: unresolved external symbol SWPVIDMDE
TIKMENUE.obj: error ALK2102: unresolved external symbol SWPGETPID
TIKMENUE.obj: error ALK2102: unresolved external symbol SWPSETPID
TIKMENUE.obj: error ALK2102: unresolved external symbol ISMOUSE
TIKMENUE.obj: error ALK2102: unresolved external symbol M_TRAPSAVE
TIKMENUE.obj: error ALK2102: unresolved external symbol M_TRAPFREE
TIKMENUE.obj: error ALK2102: unresolved external symbol SWPRUNCMD
TIKMENUE.obj: error ALK2102: unresolved external symbol VIDTYPE
TIKMENUE.obj: error ALK2102: unresolved external symbol BLINKBIT
TIKMENUE.obj: error ALK2102: unresolved external symbol M_TRAPREST
AMASKEN.obj: error ALK2102: unresolved external symbol UNCLOCK24
ANTXNDX.obj: error ALK2102: unresolved external symbol ISDIR
ANTXNDX.obj: error ALK2102: unresolved external symbol MKDIR
AREINDEX.obj: error ALK2102: unresolved external symbol FIELD
AUFPRINT.obj: error ALK2102: unresolved external symbol PRNSTATUS
HELP_TIK.obj: error ALK2102: unresolved external symbol BLIOVLOPS
TIK_LIB.obj: error ALK2102: unresolved external symbol BLISERNUM
ALINK: fatal error ALK4102: 29 external symbols unresolved
leicht zu identifizieren sind die „BLINKER“ Funktionen „SWPxxx“ sowie „BLIxxx“
Die zu „ersetzen“ ist nun sehr einfach : RUNSHELL()

Code: Alles auswählen

#IFDEF __XPP__
   RUNSHELL( cFile ,"NOTEPAD.EXE",.F.,.F.)
#ELSE
  *--- SWPRUNCMD(ChildProg, Memory, Shell Directory, Temporary directory)
    success := swpruncmd( " NOTEPAD.EXE "+ cFile, 0, "", temp_dir)
#ENDIF
Die Funktionen M_TRAPSAVE, M_TRAPFREE, M_TRAPREST,VIDTYPE sowie
BLINKBIT stammen aus der FUNCky Library und sind nur im „SWAP“ Modul
vorhanden sodas die nach dem #IFDEF nicht mehr in Erscheinung treten.

CLOCK24, UNCLOCK24 ist eine Uhr (on/off) welche man über einen Thread
lösen kann.

Code: Alles auswählen

...
      // starten
      bZeit := {|| DispOutAt(0, MaxCol()-7, Time(), "W+/B") } 
      SetTimerEvent( 100, bZeit )
...
     // beenden
      SetTimerEvent(0) 

oder

     LOCAL oThread := Thread():new()
     ...
     // starten
     oThread:start( "CLOCK24", 0, MaxCol()-7 )
     ...
     // beenden
     oThread:setInterval(NIL)

PROCEDURE CLOCK24( nRow, nCol  
      DO WHILE .T.
         DispOutAt( nRow, nCol, Time() ) 
         Sleep(100) 
      ENDDO 
 RETURN
Nun zu ISDIR() und MKDIR(). Beides sind wohl auch aus der FUNCky Library.
Während MKDIR() das „equivalent“ CREATEDIR() hat (v1.9x) gibt es zu
ISDIR() kein „equivalent“.

Code: Alles auswählen

IF .NOT. isdir(CURDIR()+"\DATEN")
   IF .NOT. mkdir(CURDIR()+"\DATEN")
      F_MELDUNG(21,"Daten Verzeichniss konnte nicht angelegt werden")
   ENDIF
ENDIF
Klar kann man für ISDIR() selbst eine Function schreiben, aber es steckt noch
ein „Problem“ in dem Source ...(was ich erst bei starten der Application bemerkte)

Code: Alles auswählen

Clipper    : CURDIR() -> ALASKA\DEMO
Xbase++ : CURDIR() -> ALASKA\DEMO
Beides sieht doch exakt gleich aus, aber während Clipper „weiss“ das es ein „Sub-
Directory“ versagt Xbase++ in einigen Fällen z.B. USE („DEMO\DATEN\MY.DBF“)

Xbase++ will in solchen Fällen den „vollen Path“ haben mit „Laufwerk“ was mit
CURDRIVE() geht. Unter Clipper gibt es kein CURDRIVE() aber FUNCky hat
CURDRIVE() ... leider mit einem Unterschied

Code: Alles auswählen

FUNCky  : CURDRIVE() -> „D:“        // 2-Bit
Xbase++  : CURDRIVE() -> „D“         // 1-Bit
damit ergibt sich für Xbase++ folgender String :

cSer_dbf :=CURDRIVE()+":\"+CURDIR() + "\DATEN\"

so dann bleibt nur noch die „Fehlermeldung“ von AREINDEX mit FIELD

Code: Alles auswählen

FUNCTION DbfSize()
LOCAL nSize           =    RECCOUNT() * RECSIZE()
LOCAL nHeadersize = 0
LOCAL nNumfields   = 0
LOCAL cLeer           = ""
LOCAL totalsize       = 0

   DO WHILE cLeer < FIELD(nNumfields + 1)
      nNumfields := nNumfields + 1
   ENDDO

   nHeadersize := (32 * nNumfields ) + 34
   nTotalsize  := nSize + nHeadersize + 1

RETURN nTotalsize
Diese Route war mal aus S87 Zeiten und läuft unter Clipper wunderbar,
während Xbase++ über FIELD „meckert“. Ich muss zugeben das ich
bislang nicht begriffen habe „warum“ Xbase++ hier „meckert“ aber ich
hab auch nicht sehr lange darüber nachgedacht weil es mit Xbase++ viel
„einfacher“ geht

Code: Alles auswählen

FUNCTION DbfSize() 
   RETURN ( (RecSize() * LastRec()) + Header() + 1 )
so nun haben wir den Source „endlich“ soweit das er auch „gelinked“ wird
und wir die Xbase++ Application (VIO) das erste Mal starten können trotz
„massiver“ Warnmeldungen
TIKMENUE.PRG(790:0): warning XBT0106: Procedure ybrowse does not end with RETURN
AFARBEN.PRG(70:0): warning XBT0106: Procedure AFARBEN does not end with RETURN
AMASKEN.PRG(87:0): warning XBT0106: Procedure rausjetzt does not end with RETURN
AREINDEX.PRG(852:0): warning XBT0106: Procedure dbfsize does not end with RETURN
ASYSMENU.PRG(381:0): warning XBT0106: Procedure alaufinit does not end with RETURN
ASYSMENU.PRG(423:0): warning XBT0106: Procedure alaufstore does not end with RETURN
ASYSMENU.PRG(889:0): warning XBT0106: Procedure logprint does not end with RETURN
AUFPRINT.PRG(2048:0): warning XBT0106: Procedure init_all does not end with RETURN
AUFPRINT.PRG(2500:0): warning XBT0100: RETURN statement with no value in function
AUFPRINT.PRG(2509:0): warning XBT0100: RETURN statement with no value in function
AUFPRINT.PRG(2523:0): warning XBT0100: RETURN statement with no value in function
AUFPRINT.PRG(2956:0): warning XBT0106: Procedure SUCH_AUFNR does not end with RETURN
AUFZEIGE.PRG(438:0): warning XBT0106: Procedure aufzsub does not end with RETURN
AUF_EDIT.PRG(877:0): warning XBT0101: Procedure returns value
AW_KONV.PRG(236:0): warning XBT0106: Procedure aw_maske does not end with RETURN
TBM2.PRG(108:0): warning XBT0100: RETURN statement with no value in function
TBM2.PRG(112:0): warning XBT0100: RETURN statement with no value in function
TBM2.PRG(127:0): warning XBT0100: RETURN statement with no value in function
TBM2.PRG(131:0): warning XBT0100: RETURN statement with no value in function
TBM2.PRG(140:0): warning XBT0100: RETURN statement with no value in function
TBM2.PRG(144:0): warning XBT0100: RETURN statement with no value in function
TBM2.PRG(153:0): warning XBT0100: RETURN statement with no value in function
TBM2.PRG(157:0): warning XBT0100: RETURN statement with no value in function
TBM2.PRG(319:0): warning XBT0100: RETURN statement with no value in function
TBMCLEAR.PRG(310:0): warning XBT0106: Procedure seektermin does not end with RETURN
TBMCLEAR.PRG(369:0): warning XBT0106: Procedure PAUFLIST does not end with RETURN
TIKFILL.PRG(231:0): warning XBT0106: Procedure TIKFILL does not end with RETURN
TIK_LIB.PRG(1531:0): warning XBT0105: Function KEY_UDF does not end with RETURN
TIK_LIB.PRG(2773:0): warning XBT0106: Procedure KOPF does not end with RETURN
Die Warnungen XBT0106 sind leicht erklärbar, den ich hab mir unter Clipper
das RETURN in einer PROCEDURE „gespart“ ... weil ich „annahm“ das dieses
mir ein paar Bytes „sparen“ würde für den 640KB „Real-Mode“ Betrieb.

Den XBT0101: Procedure returns value kann man schnell in eine FUNCTION
korrigieren, während man bei den XBT0100 aus den FUNCTION wohl eine
PROCEDURE machen könnte.

Das es „nur“ Warnungen sind, und es unter Clipper ja lief, werden wir ja sehen
Was nun passiert den „so einfach“ kann das ganze ja wohl nicht gewesen sein ... ?

Nach dem „Start“ zeigt er mir den „Install“ Bildschirm und will nun die Seriennummer
und sonstige Angaben haben die auch beim „drucken“ verwendet werden. Da ich nun
nicht mehr die „Blisernum()“ verwenden kann hab ich einfach einen cString angelegt
(„12345678 01 Auge & Ohr“). Alles scheint gut zu laufen, aber nach „abspeichern“
und erstellen der *.DBF „stürzt“ er beim „Indezieren“ ab ... hm, hm, hm ...

Also Programm nochmals gestartet und ... wieder ein Absturz aber „anders“...
Leider hatte ich zu dem Zeitpunkt noch nicht mein XPPERROR.PRG im
PROJECT.XPJ eingebaut, also musste wieder der Debugger ran. An der Stelle

Code: Alles auswählen

IF FILE ("Drucker.dat")
   RESTORE FROM drucker.dat ADDITIVE
fiel es mir wieder ein :

Code: Alles auswählen

Clipper     -> MEM Dateien
Xbase++  -> XPF Dateien
Sind NICHT kompatibel !
Da ich dem Source im „alten“ Verzeichniss modifzert habe, war da natürlich auch
noch die Clipper MEM (.DAT) Dateien und die wollte, konnte aber Xbase++ nicht
„laden“. Will man also Clipper UND Xbase++ zusammen laufen lassen MUSS man
die MEM/XPF Dateien „trennen“ z.B. mit #IFDEF __XPP__ .

Nach der „Korrektur“ lief es dann das „erst Mal“. Ich war endlich „drin“ !!!
Sogar der Aufbau der Index Dateien klappte sofort, obwohl ich noch KEINE
DBESYS.PRG eingebaut habe !

Das „Backup“ enthielt noch eine Menge (alter) Daten und ich konnte ein wenig
damit „spielen“ bis mich wieder das Programmieren packte obwohl kein Fehler
mehr aufgetaucht war. Was mich aber „nervte“ waren die PARAMETERS und
andere PRIVATE von denen noch jede Menge in verschiedenen „Ecken“ vorhanden
waren ... jaja das Programm wurde mit S87 „angefangen“ und „wuchs“ mit jeder
Clipper Version (aber immer nur da wo ich dran gearbeitet habe)

Also hab ich mich dran gemacht und als „erstes“ meine NET_USE() vorgenommen.

Code: Alles auswählen

FUNCTION NET_USE
   **  SYNTAX  : IF NET_USE(<ExpC>,<ExpL>,<ExpN>)
   **  <ExpC>  = Name der DBF Datei
   **  <ExpL>  = Shared = .F. / Exclusiv = .T.
   **  <ExpN>  = Timeout Zeit
   **
   **  ZWECK     : Netzwerk Datenbank öffnen
   **  HINWEIS   :
   **  BEISPIEL  : IF NETUSE("TEST.DBF",.T.,0.2)           &&

   PARAMETERS file_dbf, ex_use, dauer
   PRIVATE y_window, y_wahl, y_dauer, y_farbe
   y_farbe = SETCOLOR ()
   y_dauer = dauer
   SETCOLOR (ys_hell)

   DO WHILE .T.
      DO WHILE  y_dauer> 0
         IF ex_use
            USE &file_dbf EXCLUSIVE
         ELSE
            USE &file_dbf
         ENDIF
         IF .NOT. NETERR()
            SETCOLOR (y_farbe)
            RETURN (.T.)
         ENDIF
...
 
Man „sieht“ deutlich den „alten“ S87 Code und das Macro „&file_dbf“.

Daraus hab ich dann

Code: Alles auswählen

FUNCTION NET_USE( file_dbf, ex_use, dauer )
   PRIVATE y_window, y_wahl, y_dauer, y_farbe
...
         IF ex_use
            USE &file_dbf EXCLUSIVE
         ELSE
            USE &file_dbf
         ENDIF
...
 
gemacht, compiliert etc. und „gestartet“ ... und „PENG ... weg“ ?!
naja, eigendlich war das ja klar, oder ?

Fortsetzung folgt ...

Gruss by OHR
Jimmy
crikos
Rookie
Rookie
Beiträge: 10
Registriert: So, 13. Apr 2008 17:08

Problem beim Linken

Beitrag von crikos »

Hallo,
ich bin neu im Forum und neu bei Xbase++ und kämpfe mich gerade moit einer Migration durch. Ich soll für einen Kunden ein bestehendes Clipper Programm mit graphischer Oberfläche erstellen. Außer den Source Files habe ich zur Zeit nichts vorliegen.
Dein Beitrag hat mir schon extrem viel weitergeholfen und auch viel Zeit sparen geholfen - dafür zunächst Danke.
Beim Linken meiner Programme krieg ich Unmengen an ALK2102 Meldungen, unter anderem NET_USE, DBF_EOF, etc ....
Brauch ich irgendwelche Libs aus der Clipper Umgebung oder sonst noch was ?
Habe zur Zeit XBase++ 1.9 auf einem XP SP2 Rechner installiert und eigentlich sonst nichts zu dieser Umgebung, also keine Clipper-Umgebung.

Grüße
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Problem beim Linken

Beitrag von AUGE_OHR »

hi,
crikos hat geschrieben: Beim Linken meiner Programme krieg ich Unmengen an ALK2102 Meldungen, unter anderem NET_USE, DBF_EOF, etc ....
Brauch ich irgendwelche Libs aus der Clipper Umgebung oder sonst noch was ?
willkommen im deutschen Xbase++ Forum.

versuche doch mal beim linken alles in eine Protololl Datei umzulenken
damit du die ALK2102 Meldungen hier posten kannst.

PBUILD myPROJECT.XPJ > WASLOS.TXT

Wenn dein Cl*pper Programm keine zusätzlichen LIBs hatte brauchst du
für Xbase++ auch nicht weiter.
gruss by OHR
Jimmy
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Koverhage »

Jimmy,

müssen Deine Parameter Private sein ?

Sonst

Function xyz(NParam)

aber das weißt Du ja.
crikos
Rookie
Rookie
Beiträge: 10
Registriert: So, 13. Apr 2008 17:08

Output von pbuild

Beitrag von crikos »

Hallo Jimmy,
das sind die meldungen des Linkers:

Code: Alles auswählen

alink @c:\temp\04141493.tmp
Alaska 32-Bit Linker Version 1.90.331
Copyright (c) Alaska Software 1997-2006. All rights reserved.

IPOH.obj: error ALK2102: unresolved external symbol MYERROR
IPOH.obj: error ALK2102: unresolved external symbol PRNINIT
IPOH.obj: error ALK2102: unresolved external symbol NET_USE
IPOH.obj: error ALK2102: unresolved external symbol TOKEN
IPOH.obj: error ALK2102: unresolved external symbol NNETWORK
IPOH.obj: error ALK2102: unresolved external symbol NNETSEMOPN
IPOH.obj: error ALK2102: unresolved external symbol PRNAKTIV
IPOH.obj: error ALK2102: unresolved external symbol HELP
IPOH.obj: error ALK2102: unresolved external symbol CLEARS
IPOH.obj: error ALK2102: unresolved external symbol OK
IPOH.obj: error ALK2102: unresolved external symbol BS_INIT
IPOH.obj: error ALK2102: unresolved external symbol NNETSEMCLO
IPKAL.obj: error ALK2102: unresolved external symbol UERROR
IPKAL.obj: error ALK2102: unresolved external symbol NET_USE
IPKAL.obj: error ALK2102: unresolved external symbol BS_SAVE
IPKAL.obj: error ALK2102: unresolved external symbol KEYCLEAR
IPKAL.obj: error ALK2102: unresolved external symbol BOX
IPKAL.obj: error ALK2102: unresolved external symbol BSSEIN
IPKAL.obj: error ALK2102: unresolved external symbol BS_REST
IPKAL.obj: error ALK2102: unresolved external symbol RLCK
IPPROC.obj: error ALK2102: unresolved external symbol OK
IPPROC.obj: error ALK2102: unresolved external symbol RLCK
IPPROC.obj: error ALK2102: unresolved external symbol SHOWTIME
IPPROC.obj: error ALK2102: unresolved external symbol NET_USE
IPPROC.obj: error ALK2102: unresolved external symbol BS_SAVE
IPPROC.obj: error ALK2102: unresolved external symbol KEYCLEAR
IPPROC.obj: error ALK2102: unresolved external symbol BOX
IPPROC.obj: error ALK2102: unresolved external symbol BSSEIN
IPPROC.obj: error ALK2102: unresolved external symbol UERROR
IPPROC.obj: error ALK2102: unresolved external symbol BS_REST
IPPROC.obj: error ALK2102: unresolved external symbol PRN_EJECT
IPPROC.obj: error ALK2102: unresolved external symbol SAVESETKEY
IPPROC.obj: error ALK2102: unresolved external symbol TOKEN
IPPROC.obj: error ALK2102: unresolved external symbol __KEYBOARD
IPPROC.obj: error ALK2102: unresolved external symbol RESTSETKEY
IPPROC.obj: error ALK2102: unresolved external symbol SAVESCR
IPPROC.obj: error ALK2102: unresolved external symbol GETSECRET
IPPROC.obj: error ALK2102: unresolved external symbol CRYPT
IPPROC.obj: error ALK2102: unresolved external symbol BS_INIT
IPPROC.obj: error ALK2102: unresolved external symbol RESTSCR
IPPROC.obj: error ALK2102: unresolved external symbol KEYSEC
IPPROC.obj: error ALK2102: unresolved external symbol TOKENINIT
IPPROC.obj: error ALK2102: unresolved external symbol TOKENNEXT
IPPROC.obj: error ALK2102: unresolved external symbol NNETWORK
IPPROC.obj: error ALK2102: unresolved external symbol NNETSEMOPC
IPPROC.obj: error ALK2102: unresolved external symbol LSTR
IPPROC.obj: error ALK2102: unresolved external symbol ZTR
IPRECH.obj: error ALK2102: unresolved external symbol SHOWTIME
IPRECH.obj: error ALK2102: unresolved external symbol BS_SAVE
IPRECH.obj: error ALK2102: unresolved external symbol PRNINIT
IPRECH.obj: error ALK2102: unresolved external symbol UNSELECTED
IPRECH.obj: error ALK2102: unresolved external symbol STANDARD
IPRECH.obj: error ALK2102: unresolved external symbol WEITER
IPRECH.obj: error ALK2102: unresolved external symbol BS_SCHON
IPRECH.obj: error ALK2102: unresolved external symbol CLEARS
IPRECH.obj: error ALK2102: unresolved external symbol PRINTOFF
IPRECH.obj: error ALK2102: unresolved external symbol BS_REST
IPRECH.obj: error ALK2102: unresolved external symbol PRINTON
NTXUTIL.obj: error ALK2102: unresolved external symbol NET_USE
NTXUTIL.obj: error ALK2102: unresolved external symbol UERROR
NTXUTIL.obj: error ALK2102: unresolved external symbol PACKF
NTXUTIL.obj: error ALK2102: unresolved external symbol INDEXF
ZS.obj: error ALK2102: unresolved external symbol TRF
ZS.obj: error ALK2102: unresolved external symbol PRN_EJECT
ZS.obj: error ALK2102: unresolved external symbol TR
ZS.obj: error ALK2102: unresolved external symbol RLCK
a01.obj: error ALK2102: unresolved external symbol NET_USE
a01.obj: error ALK2102: unresolved external symbol CLEARS
a01.obj: error ALK2102: unresolved external symbol SREAD
a01.obj: error ALK2102: unresolved external symbol OK
a01.obj: error ALK2102: unresolved external symbol RLCK
a01.obj: error ALK2102: unresolved external symbol UMITTEIL
a01.obj: error ALK2102: unresolved external symbol PLZ_CHK
a01.obj: error ALK2102: unresolved external symbol BOX
a01.obj: error ALK2102: unresolved external symbol BSSEIN
a01.obj: error ALK2102: unresolved external symbol BSSAUS
a01.obj: error ALK2102: unresolved external symbol BS_SCHON
a01.obj: error ALK2102: unresolved external symbol GETCHANGED
a01.obj: error ALK2102: unresolved external symbol UERROR
a01.obj: error ALK2102: unresolved external symbol GETREFRESH
a01.obj: error ALK2102: unresolved external symbol BS_SAVE
a01.obj: error ALK2102: unresolved external symbol BS_REST
a01.obj: error ALK2102: unresolved external symbol LSTR
a01.obj: error ALK2102: unresolved external symbol UNSELECTED
a01.obj: error ALK2102: unresolved external symbol STANDARD
a01.obj: error ALK2102: unresolved external symbol SAVESCR
a01.obj: error ALK2102: unresolved external symbol RESTSCR
A02.obj: error ALK2102: unresolved external symbol NET_USE
A02.obj: error ALK2102: unresolved external symbol UERROR
A02.obj: error ALK2102: unresolved external symbol CLEARS
A02.obj: error ALK2102: unresolved external symbol SREAD
A02.obj: error ALK2102: unresolved external symbol RLCK
A02.obj: error ALK2102: unresolved external symbol OK
A02.obj: error ALK2102: unresolved external symbol LSTR
A02.obj: error ALK2102: unresolved external symbol PRNAKTIV
A02.obj: error ALK2102: unresolved external symbol PRINTON
A02.obj: error ALK2102: unresolved external symbol PADLEFT
A02.obj: error ALK2102: unresolved external symbol TRF
A02.obj: error ALK2102: unresolved external symbol PRN_EJECT
A02.obj: error ALK2102: unresolved external symbol TR
A02.obj: error ALK2102: unresolved external symbol PRINTOFF
A02.obj: error ALK2102: unresolved external symbol BREAKF
A02.obj: error ALK2102: unresolved external symbol LASTDAYOM
A03.obj: error ALK2102: unresolved external symbol NET_USE
A03.obj: error ALK2102: unresolved external symbol BOX
A03.obj: error ALK2102: unresolved external symbol SREAD
A03.obj: error ALK2102: unresolved external symbol BREAKF
A03.obj: error ALK2102: unresolved external symbol UERROR
A03.obj: error ALK2102: unresolved external symbol PRINTON
A03.obj: error ALK2102: unresolved external symbol TR
A03.obj: error ALK2102: unresolved external symbol RLCK
A03.obj: error ALK2102: unresolved external symbol PRINTOFF
A03.obj: error ALK2102: unresolved external symbol PRN_EJECT
A04.obj: error ALK2102: unresolved external symbol NET_USE
A04.obj: error ALK2102: unresolved external symbol BOX
A04.obj: error ALK2102: unresolved external symbol SREAD
A04.obj: error ALK2102: unresolved external symbol UMITTEIL
A04.obj: error ALK2102: unresolved external symbol BREAKF
A04.obj: error ALK2102: unresolved external symbol UERROR
A04.obj: error ALK2102: unresolved external symbol PRINTON
A04.obj: error ALK2102: unresolved external symbol PADLEFT
A04.obj: error ALK2102: unresolved external symbol PRINTOFF
A04.obj: error ALK2102: unresolved external symbol RLCK
A05.obj: error ALK2102: unresolved external symbol NET_USE
A05.obj: error ALK2102: unresolved external symbol OK
A05.obj: error ALK2102: unresolved external symbol UERROR
A05.obj: error ALK2102: unresolved external symbol PRINTON
A05.obj: error ALK2102: unresolved external symbol UMITTEIL
A05.obj: error ALK2102: unresolved external symbol LSTR
A05.obj: error ALK2102: unresolved external symbol LASTDAYOM
A05.obj: error ALK2102: unresolved external symbol PRINTOFF
A05.obj: error ALK2102: unresolved external symbol CLEARS
A05.obj: error ALK2102: unresolved external symbol WEITER
A06.obj: error ALK2102: unresolved external symbol NET_USE
A06.obj: error ALK2102: unresolved external symbol BOM
A06.obj: error ALK2102: unresolved external symbol EOM
A06.obj: error ALK2102: unresolved external symbol BOX
A06.obj: error ALK2102: unresolved external symbol SREAD
A06.obj: error ALK2102: unresolved external symbol UERROR
A06.obj: error ALK2102: unresolved external symbol UMITTEIL
A06.obj: error ALK2102: unresolved external symbol RLCK
A06.obj: error ALK2102: unresolved external symbol PRINTON
A06.obj: error ALK2102: unresolved external symbol PADLEFT
A06.obj: error ALK2102: unresolved external symbol LSTR
A06.obj: error ALK2102: unresolved external symbol PRN_EJECT
A06.obj: error ALK2102: unresolved external symbol TR
A06.obj: error ALK2102: unresolved external symbol TRF
A06.obj: error ALK2102: unresolved external symbol PRINTOFF
A07.obj: error ALK2102: unresolved external symbol NET_USE
A07.obj: error ALK2102: unresolved external symbol BOM
A07.obj: error ALK2102: unresolved external symbol EOM
A07.obj: error ALK2102: unresolved external symbol BOX
A07.obj: error ALK2102: unresolved external symbol SREAD
A07.obj: error ALK2102: unresolved external symbol UERROR
A07.obj: error ALK2102: unresolved external symbol UMITTEIL
A07.obj: error ALK2102: unresolved external symbol RLCK
A07.obj: error ALK2102: unresolved external symbol PRINTON
A07.obj: error ALK2102: unresolved external symbol PADLEFT
A07.obj: error ALK2102: unresolved external symbol TRF
A07.obj: error ALK2102: unresolved external symbol BREAKF
A07.obj: error ALK2102: unresolved external symbol PRINTOFF
A08.obj: error ALK2102: unresolved external symbol NET_USE
A08.obj: error ALK2102: unresolved external symbol BOX
A08.obj: error ALK2102: unresolved external symbol SREAD
A08.obj: error ALK2102: unresolved external symbol BREAKF
A08.obj: error ALK2102: unresolved external symbol UERROR
A08.obj: error ALK2102: unresolved external symbol PRINTON
A08.obj: error ALK2102: unresolved external symbol PADLEFT
A08.obj: error ALK2102: unresolved external symbol TR
A08.obj: error ALK2102: unresolved external symbol RLCK
A08.obj: error ALK2102: unresolved external symbol LASTDAYOM
A08.obj: error ALK2102: unresolved external symbol PRINTOFF
A09.obj: error ALK2102: unresolved external symbol NET_USE
A09.obj: error ALK2102: unresolved external symbol BOX
A09.obj: error ALK2102: unresolved external symbol SMENU
A09.obj: error ALK2102: unresolved external symbol OK
A09.obj: error ALK2102: unresolved external symbol PRINTON
A09.obj: error ALK2102: unresolved external symbol PRINTOFF
A09.obj: error ALK2102: unresolved external symbol TRF
A09.obj: error ALK2102: unresolved external symbol BREAKF
A09.obj: error ALK2102: unresolved external symbol SREAD
A09.obj: error ALK2102: unresolved external symbol UERROR
A10.obj: error ALK2102: unresolved external symbol NET_USE
A10.obj: error ALK2102: unresolved external symbol BOX
A10.obj: error ALK2102: unresolved external symbol SMENU
A10.obj: error ALK2102: unresolved external symbol OK
A10.obj: error ALK2102: unresolved external symbol PRINTON
A10.obj: error ALK2102: unresolved external symbol PRINTOFF
A10.obj: error ALK2102: unresolved external symbol TR
A10.obj: error ALK2102: unresolved external symbol BREAKF
A10.obj: error ALK2102: unresolved external symbol SREAD
A10.obj: error ALK2102: unresolved external symbol UERROR
a12.obj: error ALK2102: unresolved external symbol SAVESCR
a12.obj: error ALK2102: unresolved external symbol TMPFILE
a12.obj: error ALK2102: unresolved external symbol NET_USE
a12.obj: error ALK2102: unresolved external symbol INDEXF
a12.obj: error ALK2102: unresolved external symbol BOX
a12.obj: error ALK2102: unresolved external symbol OK
a12.obj: error ALK2102: unresolved external symbol UMITTEIL
a12.obj: error ALK2102: unresolved external symbol RLCK
a12.obj: error ALK2102: unresolved external symbol UERROR
a12.obj: error ALK2102: unresolved external symbol RESTSCR
a12.obj: error ALK2102: unresolved external symbol PRINTON
a12.obj: error ALK2102: unresolved external symbol PRN_EJECT
a12.obj: error ALK2102: unresolved external symbol TRF
a12.obj: error ALK2102: unresolved external symbol PRINTOFF
a12.obj: error ALK2102: unresolved external symbol DIRMAKE
a12.obj: error ALK2102: unresolved external symbol ZTR
a12.obj: error ALK2102: unresolved external symbol RAND
a12.obj: error ALK2102: unresolved external symbol LSTR
A13.obj: error ALK2102: unresolved external symbol NET_USE
A13.obj: error ALK2102: unresolved external symbol TR
A13.obj: error ALK2102: unresolved external symbol BOX
A13.obj: error ALK2102: unresolved external symbol COLORW
A13.obj: error ALK2102: unresolved external symbol ANZG
A13.obj: error ALK2102: unresolved external symbol SAVESCR
A13.obj: error ALK2102: unresolved external symbol DBF_EOF
A13.obj: error ALK2102: unresolved external symbol UMITTEIL
A13.obj: error ALK2102: unresolved external symbol OK
A13.obj: error ALK2102: unresolved external symbol REFRESH
A13.obj: error ALK2102: unresolved external symbol RESTSCR
A13.obj: error ALK2102: unresolved external symbol RLCK
a14.obj: error ALK2102: unresolved external symbol NET_USE
a14.obj: error ALK2102: unresolved external symbol BOX
a14.obj: error ALK2102: unresolved external symbol OK
a14.obj: error ALK2102: unresolved external symbol PRINTON
a14.obj: error ALK2102: unresolved external symbol PRN_EJECT
a14.obj: error ALK2102: unresolved external symbol RELBEZ
a14.obj: error ALK2102: unresolved external symbol TR
a14.obj: error ALK2102: unresolved external symbol PRINTOFF
A15.obj: error ALK2102: unresolved external symbol NET_USE
A15.obj: error ALK2102: unresolved external symbol CLEARS
A15.obj: error ALK2102: unresolved external symbol SREAD
A15.obj: error ALK2102: unresolved external symbol UERROR
A15.obj: error ALK2102: unresolved external symbol RLCK
A15.obj: error ALK2102: unresolved external symbol TRF
A16.obj: error ALK2102: unresolved external symbol BOX
A16.obj: error ALK2102: unresolved external symbol NET_USE
A16.obj: error ALK2102: unresolved external symbol RELBEZ
A16.obj: error ALK2102: unresolved external symbol ANZG
A16.obj: error ALK2102: unresolved external symbol OK
A16.obj: error ALK2102: unresolved external symbol TMPFILE
A16.obj: error ALK2102: unresolved external symbol INDEXF
A16.obj: error ALK2102: unresolved external symbol UMITTEIL
A16.obj: error ALK2102: unresolved external symbol PRINTON
A16.obj: error ALK2102: unresolved external symbol PRN_EJECT
A16.obj: error ALK2102: unresolved external symbol TRF
A16.obj: error ALK2102: unresolved external symbol BREAKF
A16.obj: error ALK2102: unresolved external symbol PRINTOFF
A16.obj: error ALK2102: unresolved external symbol SAVESCR
A16.obj: error ALK2102: unresolved external symbol DBF_EOF
A16.obj: error ALK2102: unresolved external symbol RLCK
A16.obj: error ALK2102: unresolved external symbol REFRESH
A16.obj: error ALK2102: unresolved external symbol RESTSCR
A16.obj: error ALK2102: unresolved external symbol TOKEN
A16.obj: error ALK2102: unresolved external symbol COLORWIN
A17.obj: error ALK2102: unresolved external symbol NET_USE
A17.obj: error ALK2102: unresolved external symbol UMITTEIL
A17.obj: error ALK2102: unresolved external symbol OK
A17.obj: error ALK2102: unresolved external symbol RLCK
A18.obj: error ALK2102: unresolved external symbol TMPFILE
A18.obj: error ALK2102: unresolved external symbol NET_USE
A18.obj: error ALK2102: unresolved external symbol INDEXF
A18.obj: error ALK2102: unresolved external symbol BOM
A18.obj: error ALK2102: unresolved external symbol EOM
A18.obj: error ALK2102: unresolved external symbol BOX
A18.obj: error ALK2102: unresolved external symbol SREAD
A18.obj: error ALK2102: unresolved external symbol UERROR
A18.obj: error ALK2102: unresolved external symbol UMITTEIL
A18.obj: error ALK2102: unresolved external symbol PRINTON
A18.obj: error ALK2102: unresolved external symbol PADLEFT
A18.obj: error ALK2102: unresolved external symbol PRN_EJECT
A18.obj: error ALK2102: unresolved external symbol TRF
A18.obj: error ALK2102: unresolved external symbol BREAKF
A18.obj: error ALK2102: unresolved external symbol PRINTOFF
A20.obj: error ALK2102: unresolved external symbol NET_USE
A20.obj: error ALK2102: unresolved external symbol BOX
A20.obj: error ALK2102: unresolved external symbol SREAD
A20.obj: error ALK2102: unresolved external symbol PRINTON
A20.obj: error ALK2102: unresolved external symbol TRF
A20.obj: error ALK2102: unresolved external symbol PRINTOFF
A21.obj: error ALK2102: unresolved external symbol NET_USE
A21.obj: error ALK2102: unresolved external symbol BOX
A21.obj: error ALK2102: unresolved external symbol PRINTON
A21.obj: error ALK2102: unresolved external symbol PRN_EJECT
A21.obj: error ALK2102: unresolved external symbol BREAKF
A21.obj: error ALK2102: unresolved external symbol PRINTOFF
A22.obj: error ALK2102: unresolved external symbol NET_USE
A22.obj: error ALK2102: unresolved external symbol OK
A22.obj: error ALK2102: unresolved external symbol PRINTON
A22.obj: error ALK2102: unresolved external symbol TRF
A22.obj: error ALK2102: unresolved external symbol PRINTOFF
a23.obj: error ALK2102: unresolved external symbol BOX
a23.obj: error ALK2102: unresolved external symbol SMENU
a23.obj: error ALK2102: unresolved external symbol NET_USE
a23.obj: error ALK2102: unresolved external symbol SREAD
a23.obj: error ALK2102: unresolved external symbol OK
a23.obj: error ALK2102: unresolved external symbol RLCK
a23.obj: error ALK2102: unresolved external symbol ANZEIG
a23.obj: error ALK2102: unresolved external symbol TEMPFILE
a23.obj: error ALK2102: unresolved external symbol UMITTEIL
a23.obj: error ALK2102: unresolved external symbol PRINTON
a23.obj: error ALK2102: unresolved external symbol PRN_EJECT
a23.obj: error ALK2102: unresolved external symbol TRF
a23.obj: error ALK2102: unresolved external symbol BREAKF
a23.obj: error ALK2102: unresolved external symbol INDEXF
a23.obj: error ALK2102: unresolved external symbol PRINTOFF
a23.obj: error ALK2102: unresolved external symbol BS_SCHON
a23.obj: error ALK2102: unresolved external symbol TMPFILE
a23.obj: error ALK2102: unresolved external symbol BS_BALKEN
a24.obj: error ALK2102: unresolved external symbol NET_USE
a24.obj: error ALK2102: unresolved external symbol BOX
a24.obj: error ALK2102: unresolved external symbol SREAD
a24.obj: error ALK2102: unresolved external symbol EOM
a24.obj: error ALK2102: unresolved external symbol UERROR
a24.obj: error ALK2102: unresolved external symbol BS_BALKEN
a24.obj: error ALK2102: unresolved external symbol PRINTON
a24.obj: error ALK2102: unresolved external symbol TRF
a24.obj: error ALK2102: unresolved external symbol PRINTOFF
a25.obj: error ALK2102: unresolved external symbol TMPFILE
a25.obj: error ALK2102: unresolved external symbol NET_USE
a25.obj: error ALK2102: unresolved external symbol BOX
a25.obj: error ALK2102: unresolved external symbol BS_BALKEN
a25.obj: error ALK2102: unresolved external symbol PRINTON
a25.obj: error ALK2102: unresolved external symbol PRN_EJECT
a25.obj: error ALK2102: unresolved external symbol PRINTOFF
A26.obj: error ALK2102: unresolved external symbol NET_USE
A26.obj: error ALK2102: unresolved external symbol BOX
A26.obj: error ALK2102: unresolved external symbol SREAD
A26.obj: error ALK2102: unresolved external symbol BS_BALKEN
A26.obj: error ALK2102: unresolved external symbol PRINTON
A26.obj: error ALK2102: unresolved external symbol PRINTOFF
a27.obj: error ALK2102: unresolved external symbol TMPFILE
a27.obj: error ALK2102: unresolved external symbol NET_USE
a27.obj: error ALK2102: unresolved external symbol BOX
a27.obj: error ALK2102: unresolved external symbol INDEXF
a27.obj: error ALK2102: unresolved external symbol PRINTON
a27.obj: error ALK2102: unresolved external symbol PRN_EJECT
a27.obj: error ALK2102: unresolved external symbol PRINTOFF
a28.obj: error ALK2102: unresolved external symbol TMPFILE
a28.obj: error ALK2102: unresolved external symbol NET_USE
a28.obj: error ALK2102: unresolved external symbol UERROR
a28.obj: error ALK2102: unresolved external symbol INDEXF
a28.obj: error ALK2102: unresolved external symbol BOX
a28.obj: error ALK2102: unresolved external symbol PRINTON
a28.obj: error ALK2102: unresolved external symbol PRN_EJECT
a28.obj: error ALK2102: unresolved external symbol LASTDAYOM
a28.obj: error ALK2102: unresolved external symbol TRF
a28.obj: error ALK2102: unresolved external symbol PRINTOFF
a28.obj: error ALK2102: unresolved external symbol ZERO
A29.obj: error ALK2102: unresolved external symbol BOM
A29.obj: error ALK2102: unresolved external symbol EOM
A29.obj: error ALK2102: unresolved external symbol NET_USE
A29.obj: error ALK2102: unresolved external symbol BOX
A29.obj: error ALK2102: unresolved external symbol UMITTEIL
A29.obj: error ALK2102: unresolved external symbol RLCK
A29.obj: error ALK2102: unresolved external symbol UERROR
A29.obj: error ALK2102: unresolved external symbol PRINTON
A29.obj: error ALK2102: unresolved external symbol PRN_EJECT
A29.obj: error ALK2102: unresolved external symbol TRF
A29.obj: error ALK2102: unresolved external symbol PRINTOFF
a30.obj: error ALK2102: unresolved external symbol TMPFILE
a30.obj: error ALK2102: unresolved external symbol BOX
a30.obj: error ALK2102: unresolved external symbol NET_USE
a30.obj: error ALK2102: unresolved external symbol INDEXF
a30.obj: error ALK2102: unresolved external symbol PRINTON
a30.obj: error ALK2102: unresolved external symbol PRN_EJECT
a30.obj: error ALK2102: unresolved external symbol PRINTOFF
a31.obj: error ALK2102: unresolved external symbol TMPFILE
a31.obj: error ALK2102: unresolved external symbol BOX
a31.obj: error ALK2102: unresolved external symbol NET_USE
a31.obj: error ALK2102: unresolved external symbol INDEXF
a31.obj: error ALK2102: unresolved external symbol OK
a31.obj: error ALK2102: unresolved external symbol PRINTON
a31.obj: error ALK2102: unresolved external symbol PRINTOFF
a32.obj: error ALK2102: unresolved external symbol TMPFILE
a32.obj: error ALK2102: unresolved external symbol NET_USE
a32.obj: error ALK2102: unresolved external symbol UERROR
a32.obj: error ALK2102: unresolved external symbol INDEXF
a32.obj: error ALK2102: unresolved external symbol BOX
a32.obj: error ALK2102: unresolved external symbol PRINTON
a32.obj: error ALK2102: unresolved external symbol PRN_EJECT
a32.obj: error ALK2102: unresolved external symbol LASTDAYOM
a32.obj: error ALK2102: unresolved external symbol TRF
a32.obj: error ALK2102: unresolved external symbol PRINTOFF
A33.obj: error ALK2102: unresolved external symbol TMPFILE
A33.obj: error ALK2102: unresolved external symbol NET_USE
A33.obj: error ALK2102: unresolved external symbol BOX
A33.obj: error ALK2102: unresolved external symbol UERROR
A33.obj: error ALK2102: unresolved external symbol OK
A33.obj: error ALK2102: unresolved external symbol INDEXF
A33.obj: error ALK2102: unresolved external symbol PRINTON
A33.obj: error ALK2102: unresolved external symbol PRN_EJECT
A33.obj: error ALK2102: unresolved external symbol PRINTOFF
A34.obj: error ALK2102: unresolved external symbol SAVESCR
A34.obj: error ALK2102: unresolved external symbol NET_USE
A34.obj: error ALK2102: unresolved external symbol RESTSCR
A34.obj: error ALK2102: unresolved external symbol BOX
A34.obj: error ALK2102: unresolved external symbol UERROR
A34.obj: error ALK2102: unresolved external symbol OK
A34.obj: error ALK2102: unresolved external symbol PRINTON
A34.obj: error ALK2102: unresolved external symbol PRN_EJECT
A34.obj: error ALK2102: unresolved external symbol RELBEZ
A34.obj: error ALK2102: unresolved external symbol TRF
A34.obj: error ALK2102: unresolved external symbol PRINTOFF
A35.obj: error ALK2102: unresolved external symbol TMPFILE
A35.obj: error ALK2102: unresolved external symbol NET_USE
A35.obj: error ALK2102: unresolved external symbol INDEXF
A35.obj: error ALK2102: unresolved external symbol BOX
A35.obj: error ALK2102: unresolved external symbol SREAD
A35.obj: error ALK2102: unresolved external symbol OK
A35.obj: error ALK2102: unresolved external symbol UMITTEIL
A35.obj: error ALK2102: unresolved external symbol PRINTON
A35.obj: error ALK2102: unresolved external symbol PRN_EJECT
A35.obj: error ALK2102: unresolved external symbol TRF
A35.obj: error ALK2102: unresolved external symbol PRINTOFF
a39.obj: error ALK2102: unresolved external symbol NET_USE
a39.obj: error ALK2102: unresolved external symbol CLEARS
a39.obj: error ALK2102: unresolved external symbol OK
a39.obj: error ALK2102: unresolved external symbol RLCK
a39.obj: error ALK2102: unresolved external symbol TRF
a39.obj: error ALK2102: unresolved external symbol DELEF
a39.obj: error ALK2102: unresolved external symbol LOESCHEN
a39.obj: error ALK2102: unresolved external symbol SAVESCR
a39.obj: error ALK2102: unresolved external symbol RELBEZ
a39.obj: error ALK2102: unresolved external symbol BOX
a39.obj: error ALK2102: unresolved external symbol ANZG
a39.obj: error ALK2102: unresolved external symbol RESTSCR
a39.obj: error ALK2102: unresolved external symbol DBF_EOF
a39.obj: error ALK2102: unresolved external symbol REFRESH
A40.obj: error ALK2102: unresolved external symbol NET_USE
A40.obj: error ALK2102: unresolved external symbol CLEARS
A40.obj: error ALK2102: unresolved external symbol WEITER
A40.obj: error ALK2102: unresolved external symbol OK
A40.obj: error ALK2102: unresolved external symbol RLCK
A40.obj: error ALK2102: unresolved external symbol DELEF
A41.obj: error ALK2102: unresolved external symbol NET_USE
A41.obj: error ALK2102: unresolved external symbol CLEARS
A41.obj: error ALK2102: unresolved external symbol OK
A41.obj: error ALK2102: unresolved external symbol RLCK
A41.obj: error ALK2102: unresolved external symbol DELEF
a42.obj: error ALK2102: unresolved external symbol NET_USE
a42.obj: error ALK2102: unresolved external symbol CLEARS
a42.obj: error ALK2102: unresolved external symbol OK
a42.obj: error ALK2102: unresolved external symbol RLCK
a43.obj: error ALK2102: unresolved external symbol LOESCHEN
a43.obj: error ALK2102: unresolved external symbol NET_USE
a43.obj: error ALK2102: unresolved external symbol RELBEZ
a43.obj: error ALK2102: unresolved external symbol BOX
a43.obj: error ALK2102: unresolved external symbol ANZG
a43.obj: error ALK2102: unresolved external symbol SAVESCR
a43.obj: error ALK2102: unresolved external symbol DBF_EOF
a43.obj: error ALK2102: unresolved external symbol RLCK
a43.obj: error ALK2102: unresolved external symbol REFRESH
a43.obj: error ALK2102: unresolved external symbol RESTSCR
A44.obj: error ALK2102: unresolved external symbol NET_USE
A44.obj: error ALK2102: unresolved external symbol CLEARS
A44.obj: error ALK2102: unresolved external symbol RLCK
a57.obj: error ALK2102: unresolved external symbol CLEARS
a57.obj: error ALK2102: unresolved external symbol OK
a57.obj: error ALK2102: unresolved external symbol NET_USE
a57.obj: error ALK2102: unresolved external symbol INDEXF
a57.obj: error ALK2102: unresolved external symbol BOX
a57.obj: error ALK2102: unresolved external symbol LOESCHEN
a57.obj: error ALK2102: unresolved external symbol COLORWIN
a57.obj: error ALK2102: unresolved external symbol ANZG
a57.obj: error ALK2102: unresolved external symbol SAVESCR
a57.obj: error ALK2102: unresolved external symbol DBF_EOF
a57.obj: error ALK2102: unresolved external symbol UERROR
a57.obj: error ALK2102: unresolved external symbol RLCK
a57.obj: error ALK2102: unresolved external symbol CRYPT
a57.obj: error ALK2102: unresolved external symbol BS_INIT
a57.obj: error ALK2102: unresolved external symbol REFRESH
a57.obj: error ALK2102: unresolved external symbol RESTSCR
ALINK: fatal error ALK4102: 474 external symbols unresolved

Processing time:      2.57 secs.
Leider gibt es zu dem Programmpaket keine Dokumentation, der Entwickler dieser Programme ist nicht mehr erreichbar.
Grüße
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21164
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Moin,

ich würde sagen, da fehlen etliche "eigene" Bibliotheken, sprich selbstgeschriebene Funktionen. Anders gesagt, da
fehlt Quellcode. Oder ist nicht eingebunden beim Linken.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
crikos
Rookie
Rookie
Beiträge: 10
Registriert: So, 13. Apr 2008 17:08

fehlende Libs

Beitrag von crikos »

Hallo Manfred,
in der Projekt Datei (im konkreten Fall ipoh.xpj) sind alle PRGs angeführt, die zur Verfügung stehen. Soweit ich mich an meine Clipper Zeiten erinnern kann (das ist nun doch schon mehr als 20 Jahre zurück) gab es da ja einige Libs, die man gut verwenden konnte. Soweit ich mich aber nun eingelesen habe, kann man diese LIBs aber nicht verwenden, oder doch ?
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21164
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi,

im Zweifelsfalle alles, wenn der Quellcode vorhanden ist, neu kompilieren und dann einbinden. Wenn es keine Quellcode dazu gibt... Tja...
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
crikos
Rookie
Rookie
Beiträge: 10
Registriert: So, 13. Apr 2008 17:08

Einbinden

Beitrag von crikos »

Hallo Manfred,
was verstehst Du unter einbinden genau ? Ich habe folgenden Inhalt in der Projektdatei:

Code: Alles auswählen

//
// Project - Definition - File created by PBUILD Version  1.90.331
// Date: 13.04.2008 Time: 16:42:30
//

[PROJECT]
    COMPILE       = yes
    COMPILE_FLAGS = /q
    DEBUG         = no
    GUI           = no
    LINKER        = alink
    LINK_FLAGS    = 
    RC_COMPILE    = arc
    RC_FLAGS      = 
    IPOH.XPJ

[IPOH.XPJ]
    IPOH.EXE

[IPOH.EXE]
// $START-AUTODEPEND
    IPHO.OBJ
    BB.OBJ
    IPKAL.OBJ
    IPPROC.OBJ
    IPRECH.OBJ
    NTXUTIL.OBJ
    ZS.OBJ
    A01.OBJ
    A02.OBJ
    A03.OBJ
    A04.OBJ
    A05.OBJ
    A06.OBJ
    A07.OBJ
    A08.OBJ
    A09.OBJ
    A10.OBJ
    A12.OBJ
    A13.OBJ
    A14.OBJ
    A15.OBJ
    A16.OBJ
    A17.OBJ
    A18.OBJ
    A20.OBJ
    A21.OBJ
    A22.OBJ
    A23.OBJ
    A24.OBJ
    A25.OBJ
    A26.OBJ
    A27.OBJ
    A28.OBJ
    A29.OBJ
    A30.OBJ
    A31.OBJ
    A32.OBJ
    A33.OBJ
    A34.OBJ
    A35.OBJ
    A39.OBJ
    A40.OBJ
    A41.OBJ
    A42.OBJ
    A43.OBJ
    A44.OBJ
    A57.OBJ
    STD.CH
    SET.CH
    NATMSG.CH
    GET.CH
    PROMPT.CH
    MEMVAR.CH
    COLLAT.CH
// $STOP-AUTODEPEND
    IPHO.PRG
    BB.PRG
    IPKAL.PRG
    IPPROC.PRG
    IPRECH.PRG
    NTXUTIL.PRG
    ZS.PRG
    A01.PRG
    A02.PRG
    A03.PRG
    A04.PRG
    A05.PRG
    A06.PRG
    A07.PRG
    A08.PRG
    A09.PRG
    A10.PRG
    A12.PRG
    A13.PRG
    A14.PRG
    A15.PRG
    A16.PRG
    A17.PRG
    A18.PRG
    A20.PRG
    A21.PRG
    A22.PRG
    A23.PRG
    A24.PRG
    A25.PRG
    A26.PRG
    A27.PRG
    A28.PRG
    A29.PRG
    A30.PRG
    A31.PRG
    A32.PRG
    A33.PRG
    A34.PRG
    A35.PRG
    A39.PRG
    A40.PRG
    A41.PRG
    A42.PRG
    A43.PRG
    A44.PRG
    A57.PRG

Brauchts da noch mehr - zum Beispiel irgendwelche Optionen für den Linker.... ?
Grüße
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21164
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi,

was ich mit einbinden meine: Die weiteren LIB's oder Obj Dateien in der Projektdatei mit angeben, wie die bisherigen OBj Dateien usw. Das geht aber nur, wenn sie auch unter Xbase++ compiliert wurden, oder aber für Xbase++ bestimmt sind (Fremdanbieter). Was jetzt genau fehlt, kann ich von hier aus nicht sehen. Am besten wäre es, wenn Du mit einem Editor Deiner Wahl den vorhandenen Quellcode nach genau den Funktionen durchsuchst, die der Compiler anmeckert. Dann überprüfst, ob dieser Quellcode auch compiliert wird/wurde und somit die Libs oder Obj Dateien zur Verfügung stehen. So wie ich das jetzt sehe, meckert er ja nicht darüber, das Obj/Lib fehlen, sondern das Funktionen fehlen. Und die müssen irgendwo drin sein, aber werden wohl nicht mit compiliert.
Also Tipp: Das gesamt Projekt durchsuchen und prüfen, was wie wo zu gehört.

PS: Padleft() gibt es in den Tools III. Wenn das nicht von Hand nachprogrammiert wurde, dann benötigst Du die auf jeden Fall. Die dan eingebunden und es könnte schon einen Berg weniger Fehlermeldungen geben.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
crikos
Rookie
Rookie
Beiträge: 10
Registriert: So, 13. Apr 2008 17:08

Beitrag von crikos »

besten Dank für die Info,
gibt es auch eine Trial Version von ToolsIII ? Ich habe mich gerade auf der Webseite von Alaska Software umgesehen und konnte keine finden.

Grüße
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21164
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Trial Version?

nicht das ich wüßte..
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
crikos
Rookie
Rookie
Beiträge: 10
Registriert: So, 13. Apr 2008 17:08

Beitrag von crikos »

dann habe ich richtig gelesen. Besten Dank für Deine Unterstützung, ich glaube an dieser Stelle endet dann das Abenteuer.

Grüße
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21164
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Heißt das, Du machst es nicht weiter?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
crikos
Rookie
Rookie
Beiträge: 10
Registriert: So, 13. Apr 2008 17:08

Beitrag von crikos »

wohl oder übel. Wenn ich mir überlege, daß mich der nächste Schritt ca. 500 EUR kostet, damit ich dann die fehlenden Funktionen ausgefiltert habe und dann erst weiß was sonst noch fehlt, ist mir das zu teuer und zu riskant. Aber wenn Du Lust hast das ganze als Auftrag zu übernehmen, dann könnten wir uns auch drüber unterhalten.
Grüße
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21164
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

naja,

es klang so, als wenn der Kunde Wert darauf legen würde, das Programm auf Xbase++ umzurüsten. Mal eben ist das sowieso nicht getan. Selbst wenn Du den einfachsten Weg gehen würdest und express++ oder ein anderes Tool nutzt, das Dir den Umstieg auf GUI vereinfacht. Es wird auf jeden Fall mit Zusatzkosten verbunden sein.

Ich habe mir gerade nochmals kurz angesehen, was da genau angemeckert wird. Es sind auch Netware-Funktionen mit eingebunden. Vielleicht solltest Du erst einmal nachsehen, was das Programm alles macht und was überhaupt noch benötigt wird?!

Aber nur mal so am Rande: Wenn der Kunde glaubt diese Aktion kostenlos zu bekommen, dann ist irgendwas in der Kommunikation schief gelaufen, oder aber Du hast zu viel Freizeit :wink:
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Beitrag von Jan »

Hallo,

so teuer muß man das ja nicht machen. Die Alaska-Tools sind ja nichts anderes als die Clipper-Tools (die ebenfalls kostenpflichtig waren). Wenn man eine Alaska-Subscription kauft, dann sind die auch automatisch dabei.

Nun zu Deinem Problem: Wie Manfred schon gesagt hat mußt Du erstmal sehen, welche fehlenden Funktionen überhaupt moniert werden. Denn ein ganzer Schwung werden eigene Funktionen sein, die selber nachgebaut werden könnten. Auch die Tools-Funktionen kann man normalerweise alle nachbauen.

Deswegen jetzt das ganze Projekt hinzuschmeißen ist sicher etwas übereilt. Denke ich.

Jan
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Und von mir noch der Hinweis:
Wenn Du sowieso im Besitz der (Clipper)sourcen bist, hast Du doch sicherlich auch noch irgendwo das Clipper-linkscript rumliegen - poste das doch mal!
Da steht drin, welche LIBs benutzt werden.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21164
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Jan,

ob aber eine Subscription beim 1.Mal billiger ist? Das wird sich erst rechnen, wenn man die verlängert, anstatt irgendwann alles neu zu kaufen. Aber wie Du auch schon erwähnt hast, nachsehen, was wirklich benötigt wird, was evtl. schon in Xbase++ eingebaut wurde, bzw. was man mit Bordmitteln nachbauen kann. Ich denke einmal die Netwarefunktionen werden wohl eher nicht mehr benötigt. Net_use() ist eh etwas selbstgestricktes, bzw. aus den Beispielen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21164
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Ach Martin,

wenn wir Dich nicht hätten. :lol:
An diese einfache Sache habe ich jetzt im Eifer des Gefechtes nicht gedacht.

Jaja, man merkt an diesen Kleinigkeiten dich immer wieder, wo der Profi steckt. 8)
Zuletzt geändert von Manfred am Mo, 14. Apr 2008 9:32, insgesamt 2-mal geändert.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
crikos
Rookie
Rookie
Beiträge: 10
Registriert: So, 13. Apr 2008 17:08

Beitrag von crikos »

nein - das ist definitiv ,mit Kosten verbudnen und das Projekt wird natürlich auch bezahlt. Der Hintergrund ist etwas kurios, tut aber nichts zur Sache. Der Kunde möchte bzw. muss das alte Clipper Programm mit einer graphischen Oberfläche ausstatten. Alles was aus der Zeit des Clipper Projekts existiert ist in der xpj Datei angeführt - also diese ca. 50 PRGs, das fertige Executable und die .dbf Dateien. Sonst gibt es leider nichts dazu. Ich bin nun dabei zu evaluieren, welchen Weg man gehen sollte bzw. kann. Ob ich nun 500 EUR für diese ToolsIII bezahle oder eben 1 Tag lang die Linker-Fehler analysiere, kommt ungefähr aufs gleiche raus. Unterm Strich ist die Wahrscheinlichkeit erfolgreich zu sein nicht so groß, das Risiko bleibt bei mir, deshalb lieber ein rechtzeitiger Ausstieg, als ein Schrecken ohne Ende. Aber wie gesagt, es gäbe einen Auftrag.

Grüße
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hi,

einige der Funktionen sind XbToolsIII Funktionen, aber auf keinen Fall alle. Wenn du aber auf GUI umstellen sollst, ist es besser genau zu erkunden was der Kunde heute will und das Programm neu zu schreiben. Eventuell kann man einige Rechenregeln etc. weiterverwenden, aber auch wenn du das Programm sauber kompilieren kannst, die EXE wird keine GUI sein, sondern genauso aussehen wie das DOS Programm.
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21164
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Crikos, (mh, gibt es dazu auch einen richtigen Namen?)

das kann ich so nicht unterschreiben. Dann fehlt eine andere Fehlermeldung. Oder die Toolsfunktionen sind alle nachprogrammiert worden, was ich weniger glaube. Normalerweise müßte der Compiler dann früher abbrechen, wenn irgendwelche Bibliotheken angegeben wurde, aber nicht zu finden sind. Und die Tools sind definitiv nicht angegeben, in dem Projektfile. Ich schätze einmal, das ist bei der Erstellung nicht berücksichtigt worden. Hast Du das Projektfile anhand der Anleitung erstellt? Also copy *.prg in datei und dann weiter? Dann wäre das eine Erklärung dafür.

Oder aber es wurde nicht alles übergeben dafür. Aber das ist jetzt alles Spekulation von meiner Seite aus.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Antworten