Erste Gehversuche mit ALink aus XBase++

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

Moderator: Moderatoren

Antworten
FlashNash
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 101
Registriert: Di, 22. Jul 2008 15:39
Wohnort: RE - NRW
Kontaktdaten:

Erste Gehversuche mit ALink aus XBase++

Beitrag von FlashNash »

Ich hatte Euch ja hier berichtet, dass ich meine alten Clipper Sourcen mittlerweile und soweit fehlerfrei mit Xbase compillieren kann. Wohl gemerkt, ich erzeuge mit der alten Make-Datei und gleicher Struktur die OBJecte, genau wie damals mit dem alten Clipper.... das sollte soweit auch passen.

Jetzt habe ich mir mal die Schalter von ALink angesehen. Okay, einige Option/Schalter/Namen passen i.V. mit dem früher verwendeten RTLink, der Großteil aber nicht.

Desweiteren, wegen des früheren RAM Mangel unter DOS, hatte ich insgesamt 54 Overlays erzeugt (+ 640KB RAM Swapping eingbaut) damit die gesamte Applikation überhaupt in dem Fingerhut großen DOS Speicher zum runnen kam .... Ihr wisst schon was ich genau meine. :wink:

Ich hatte es früher, so wie die meisten, eine *.LNK Steuerdatei die dem Linker verklicker hat, was er machen sollte wie z.B.
RTLink @Linkmalwas.LNK d.h. hier strukturell kurz angerissen:


FILE NxMax,
SaamMenu,
HlpMain,
SaamFunc

OUTPUT \Nexus\SaaNxMax
MAP=\Clipper\Log\SaaNxMax

LIBRARY OVERCL,
NEXUS,
CLIPPER,
DBFNTX,
NT250

OVERLAY CODE
BEGINAREA

SECTION INTO \PRO_C\Nexus\SAAneu\NxMa0100.ovl FILE SaamUp
SECTION INTO \PRO_C\Nexus\SAAneu\NxMa0200.ovl FILE NxMaxDSP
SECTION INTO \PRO_C\Nexus\SAAneu\NxMa0300.ovl FILE Bar1
SECTION INTO \PRO_C\Nexus\SAAneu\NxMa0400.ovl FILE Verka1
BEGINAREA
SECTION INTO \PRO_C\Nexus\SAAneu\NxMa0410.ovl FILE Verka14,Verka18
SECTION INTO \PRO_C\Nexus\SAAneu\NxMa0420.ovl FILE VerkOSF1
ENDAREA
.....
.....
.....

ENDAREA


Ich habe mich schon wund gegoogelt und auch bei Alaska gestöbert. Nirgends finde ich eine Beschreibung oder ein HowTo, was die Optionswitches bei ALink genau machen bzw. wie man sie genau anwendet und ... ob der ALinker überhaupt Overlays kann.

So, das zum Thema erste Schritte mit dem ALinker, die mir einfach nicht gelingen wollen. Vielleicht stelle ich mich auch nur dumm an, oder ralle das momentan nicht mehr, nach der langen progging Session, die ich seit gestern ca. 20:00 Uhr abhalte. Vielleicht gibt´s gleich noch Ärger mit der Frau. :?

Bin also für jeden Hinweis/Tipp/Link usw. dankbar ... eventuell auch eine kleine Demo-Steuerdatei für den Kollege ALink aus Xbase.
Gruß Rolf
Admin of www.Ruhrpottboard.de
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Rolf,

In der Hilfe ist doch alles beschrieben. Oder was meinst Du jetzt?
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!!
FlashNash
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 101
Registriert: Di, 22. Jul 2008 15:39
Wohnort: RE - NRW
Kontaktdaten:

Beitrag von FlashNash »

Was genau für Hilfe meinst Du Manfred? Ich habe alles durchstöbert, aber nix gefunden. Bedenke, ich habe nur die 1.9 Build 331 Demo-Version. Ich kann nirgend was finden, was mir die Linkersteuerung näher/genauer erklärt. :?
Gruß Rolf
Admin of www.Ruhrpottboard.de
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Rolf,

irgendwie meine ich mich erinnern zu können, das auch die Demoversionen damals alles so installiert haben, wie es die Originalversionen tun. D.h. es wird auf LW C:/ installiert im Verzeichnis Alaska. Dort gibt es Unterverzeichnisse XPPW32 für den Compiler selbst und XBTW32 für die Tools.

Unter XPPW32 gibt es weitere Unterverzeichnisse:

BIN, in dem der Compiler und der Rest an Programmen steht
BOOK, in dem XPPREF.HLP steht. <- Das ist die Anleitung, in der alles mehr oder weniger erklärt wird.

Gibt es dass bei Dir nicht? Wie hast Du dann die Demo installiert?

Ach so, noch etwas: Die Tools3 sind identisch mit denen die damals beim Clipper dabei waren. Bis auf ein paar Dinge, die unter Windows so nicht gehen, oder anders geregelt werden.
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: 14653
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Manfred,

in allen Punkten korrekt, auch über die Installation der Demo. Ist alles wie in einer bezahlten Installation.

Jan
FlashNash
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 101
Registriert: Di, 22. Jul 2008 15:39
Wohnort: RE - NRW
Kontaktdaten:

Beitrag von FlashNash »

Die Subs stimmen bei mir überein, wie von Dir beschrieben. Ich habe das Teil nur auf einer aderen Platte, ist aber wurscht, weil ich die Path-Angaben alle manuell via BATch steuer d.h. entweder auf Clipper5.2 oder auf Xbase. Löppt ja auch alles prima und das ist nicht mein Problem.

Auch die vorhandenen Hilfen habe ih gelesen und durchstöbert. Dort gbt es zwar Compiler und Linker Fehlermeldungen, aber ich finde keine genaue Beschreibung der Schalter/Optionen des ALINK d.h. wie ich den mit einer XYZ.LNK Datei steuer, so wie früher den RTLINK.

Der ALink startet zwar auf, bricht aber sofort ab mit

ALINK: fatal error ALK4001: cannot open file "#================================.obj"

weil in der *.LNK Datei noch einiges Schalter/Optionen angepasst werden müssen. Und genau DAS fehlt mir nämlich die genau Anwendung der Schalter/Optionen des ALINK. Diese hier aus ALINK:


Alaska 32-Bit Linker Version 1.90.331
usage: ALINK [options] [files] [@commandfile]

options:
/BASE:address
/DE[BUG]
/DEFAULTLIB:library
/DLL
/FORCE:{MULTIPLE|UNRESOLVED}
/HELP or /?
/MAP[:filename]
/NOD[EFAULTLIB][:library]
/NOL[OGO]
/OUT:filename
/PM[TYPE]:{PM|VIO}
/ST[ACK]:max[,min]
/SUBSYSTEM:{WINDOWS|CONSOLE}[,#[.##]]
/VERBOSE
/VERSION:#[.#]



Der frühere RTLink für den Clipper 5.x hatte diese Switches mit folgenden Erklärungen:

.RTLink for Clipper Dynamic Overlay Linker / Pre-Linker Version 3.14B
(C) Copyright Pocket Soft Inc., 1988-1991. All Rights Reserved.

FREEFORMAT syntax:

RTLINK [FILE <objFile list> [OUTPUT <outputFile>]
[LIBRARY [<libFile list>] [<linkOption list>]] | [@<scriptFile>]

POSITIONAL syntax:

RTLINK [<objFile list>, [<outputFile>], [<mapFile>],
[<libFile list>] [<linkOption list>]] | [@<scriptFile>][;]

If used without arguments, .RTLink enters prompt mode.

<objFile list> is a list of object (.OBJ) files to link.

<outputFile> is the name of the file (.EXE or .PLL/.PLT) to be generated.

<mapFile> is the name of a map (.MAP) file to generate.

<libFile list> is the list of library (.LIB) files to search.

<linkOption list> is a list one or more linker options described below.

<scriptFile> is the name of a linker script (.lnk) file.


For many options, two syntaxes are given and the correct one depends on the
input mode used. Specifying options in POSITIONAL mode requires the option
to begin with a forward slash (if no forward slash is included in the syntax,
the option is allowed only in FREEFORMAT). FREEFORMAT mode allows you to use
either syntax, and where there is only one syntax representation it allows
you to omit both the slash and the colon.



Configuration Options


/FREEFORMAT | /POSITIONAL

Configures the linker interface to FREEFORMAT or POSITIONAL input mode when
.RTLink switches to a new input stream. /FREEFORMAT is default input mode.
/FREEFORMAT and /POSITIONAL are special configuration options that may only
be specified as part of the RTLINKCMD environment variable, within
RTLINK.CFG, or on the RTLINK command-line if you are linking with a script
file. The forward slash is required regardless of the current input mode.



Dynamic Overlay Options


/DYNAMIC[:<ovlFile>]
DYNAMIC [INTO <ovlFile>]

DYNAMIC forces the linker to place any subsequent Clipper-compiled modules
into a dynamic overlay instead of placing the module in the root section.
The <ovlFile> causes .RTLink to generate an external overlay (.OVL) file. If
not specified, the overlay code is written to the .EXE file. DYNAMIC is the
opposite of RESIDENT and is the default mode.



/RESIDENT

Causes subsequent Clipper-compiled modules to be loaded into the root section
of the current program, overriding the automatic creation of dynamic overlays
for all Clipper-compiled code. RESIDENT is the opposite of DYNAMIC.


Help and Debugging Options

/DEBUG

Causes the .RTLink overlay manager to display a message that identifies each
overlay as it is loaded into memory during program execution.


/HELP

Lists the linker options to the console.


/MAP[:<mapOption list>]
MAP [= <mapFile>] [<mapOption list>]

Generates a map file containing one or more reports about the link session.
The available MAP options are S to report segments with assigned addresses, N
to report public symbols with addresses sorted by symbol, and A to report
public symbols with addresses sorted by address.





Help and Debugging Options (continued)


/SILENT

Suppresses the display of the linker prompts and responses when .RTLink is
invoked with a script file.



/VERBOSE[:<level>]

Causes .RTLink to display status messages during linking indicating the
modules being linked and in what order. <level> specifies the amount of
information to display (0, 1, or 2).




Incremental Linking Options


/INCREMENTAL[:<wastedSpace>] | /NOINCREMENTAL

INCREMENTAL enables incremental linking of Clipper-compiled modules. When a
program is linked, only modules that have changed are re-linked.
<wastedSpace> is a numeric parameter that controls the percentage of wasted
space allowed in the .EXE file that .RTLink will tolerate before re-linking
the entire application. Use of the INCREMENTAL option causes .RTLink to
generate and maintain an information (.inf) file. NOINCREMENTAL is the
default.



Miscellaneous Options

/BATCH | /NOBATCH

BATCH prevents the linker from prompting you when it is unable to locate a
file. NOBATCH is the default.


/DEFAULTLIBRARYSEARCH | /NODEFAULTLIBRARYSEARCH

NODEFAULTLIBRARYSEARCH causes .RTLink to ignore any library names embedded by
the compiler. Clipper automatically embeds CLIPPER.LIB, EXTEND.LIB, and
DBFNTX.LIB in all of the .OBJ files that it generates unless you change the
default using the /R compiler option. DEFAULTLIBRARYSEARCH is the default.


/EXTDICTIONARY | /NOEXTDICTIONARY

/NOEXTDICTIONARY causes the linker not to search the extended dictionary.
/EXTDICTIONARY is the default.





Miscellaneous Options (continued)


/IGNORECASE | /NOIGNORECASE

NOIGNORECASE causes case to be significant in symbol and segment names.
IGNORECASE is the default.


/STACK:<sizeBytes>

Specifies a program stack overriding the stack size specified in the object
module. <sizeBytes> is a numeric values up to 65,535.




Pre-link Options


/EXCLUDE:<symbol>
EXCLUDE <symbol list>

In pre-link mode (PRELINK linker option specified), causes any module
defining the specified symbol(s) to be excluded from the link.



/PLL:<prelinkLib>

Used in link mode to specify a pre-linked library file that the resulting
executable file depends on. This option may also be used in pre-link mode in
order to create a pre-linked library that depends on another pre-linked
library; however, this nesting of pre-linked libraries is allowed only one
level deep.







Pre-link Options (continued)


/PRELINK

Changes .RTLink to pre-link mode. In this mode .RTLink generates two output
files, a pre-linked library (.PLL) and a pre-linked transfer (.PLT) file,
instead of an executable (.EXE) file.



/REFER:<symbol>
REFER <symbol list>

In pre-link mode, forces .RTLink to search all specified libraries in order
to load the necessary code associated with the specified symbols.









Static Overlay Options


BEGINAREA
.
. <linker freeformat options>
.
ENDAREA

Designates a static overlay area with all sections specified between these
two commands becoming static overlay sections within the overlay area.
Static overlay areas may be nested by specifying a BEGINAREA...ENDAREA
construct inside of another.



MODULE <moduleName list>

Moves the segments from the specified modules into the current static overlay
section.





Static Overlay Options (continued)


PRELOAD

Causes the current static overly section to be loaded into memory before the
program begins execution. Normally, only the resident sections of the
program are loaded into memory before execution begins.



SECTION [= <sectionName>] [INTO <ovlFile>]

Creates a static overlay section, and causes segments within any non-Clipper
object modules specified in subsequent FILE or LIBRARY options to become a
part of that section. The <ovlFile> causes .RTLink to generate an external
overlay (.OVL) file. If not specified, the overlay code is written to the
.EXE file




Und genau so etwas wie oben vom RTLink suche ich für den ALINK aus XBase.
Gruß Rolf
Admin of www.Ruhrpottboard.de
FlashNash
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 101
Registriert: Di, 22. Jul 2008 15:39
Wohnort: RE - NRW
Kontaktdaten:

Beitrag von FlashNash »

Okay, okay, okay ... ich habs gefunden. Ich sitze wohl schon zu lange vor der Kiste. :roll: Ist zu finden in

\..\XPPW32\book\XPPREF.HLP und dort wiederum unter:

Programmierwerkzeuge --> Der Alaska Linker - ALINK.EXE --> Linker Optionen


Na mal sehen, werde mal nachlesen, was ich in meiner *.LNK Datei falsch gemacht habe. Vielleicht geht mir ja ein :idea: auf. :D
Gruß Rolf
Admin of www.Ruhrpottboard.de
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Beitrag von AUGE_OHR »

hi,
FlashNash hat geschrieben:Okay, okay, okay ... ich habs gefunden. Ich sitze wohl schon zu lange vor der Kiste. :roll: Ist zu finden in

\..\XPPW32\book\XPPREF.HLP und dort wiederum unter:

Programmierwerkzeuge --> Der Alaska Linker - ALINK.EXE --> Linker Optionen


Na mal sehen, werde mal nachlesen, was ich in meiner *.LNK Datei falsch gemacht habe. Vielleicht geht mir ja ein :idea: auf. :D
Sicherlich hast du schon gelesen das du einfach alle PRG nimmst wobei
"das erste" die Procedure MAIN() einhält.

Code: Alles auswählen

dir *.PRG /B > PROJECT.TXT
PBUILD @PROJECT.TXT

=> PROJECT.XPJ
ein weiteres Problem könnte sein das deine PRG nicht mit PROCEDURE
oder FUNCTION anfängt (Cl*pper konnte den PRG Namen als Procedure-
Namen nehmen). Ich dem Fall würde ich mir eine kleine Routine schreiben
mit Directory("*.PRG"), die mit FOPEN öffnen und mit FWRITE in die neue
PRGs dann PROCEDURE xxx schreiben.
gruss by OHR
Jimmy
FlashNash
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 101
Registriert: Di, 22. Jul 2008 15:39
Wohnort: RE - NRW
Kontaktdaten:

Beitrag von FlashNash »

Link-Status 11.08.2008:
Meine dezeit aktuelle ´unresolved external´ Liste, die der ALink mir erzeugt:


Bild


1. Die beiden UDF´s aus de NT250LIB sind klar. Für die beiden werde ich schon was finden/machen.

2. Die UDF´s aus der CA ToolII LIB sind ja überwiegend um Fenster zu händeln. Die paar, die nichts mit der Fenstersteuerung zu tun haben sind pillepalle, dafü werde ich mir was einfallen lassen. Gibt es in XBase etwas ähnliches für die Fenstersteuerung? Bin mit den XBase Commands noch längst nicht vertraut ... ja, ja, ich werde weiter lesen/lernen. :wink:

3. Bleiben noch die UDFs mit den zwei Unterstrichen (__xyz) aus dem alten Clipper. Kann mir dazu jemand einen Hinweis geben? :?
Gruß Rolf
Admin of www.Ruhrpottboard.de
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Beitrag von AUGE_OHR »

hi,
FlashNash hat geschrieben:Link-Status 11.08.2008:
Meine dezeit aktuelle ´unresolved external´ Liste, die der ALink mir erzeugt:

1. Die beiden UDF´s aus de NT250LIB sind klar. Für die beiden werde ich schon was finden/machen.
FlashNash hat geschrieben: 2. Die UDF´s aus der CA ToolII LIB sind ja überwiegend um Fenster zu händeln. Die paar, die nichts mit der Fenstersteuerung zu tun haben sind pillepalle, dafü werde ich mir was einfallen lassen. Gibt es in XBase etwas ähnliches für die Fenstersteuerung? Bin mit den XBase Commands noch längst nicht vertraut ... ja, ja, ich werde weiter lesen/lernen. :wink:
FlashNash hat geschrieben: 3. Bleiben noch die UDFs mit den zwei Unterstrichen (__xyz) aus dem alten Clipper. Kann mir dazu jemand einen Hinweis geben? :?
zu 1a.) COLORTON : sollte bei "nur" 16 Farben kein Problem sein
zu 1b.) COLORWIN : Es gibt kein "blink" und "bright" geht nur mit Trick
(Hintergrund mit *+ oder so ... )

zu 2.) die ganzen W* Funktionen, gibt es in den XbTools, sind eigendlich
bei Xbase++ überflüssig den du kann ja beliebig viele XbpCRT() öffnen.

SHOWTIME() : siehe mal unter Xbase++ Helpfile "Threads"

Code: Alles auswählen

PROCEDURE Main 
LOCAL oThread := Thread():new() 

      CLS 
      oThread:start( "showTime", MaxRow(), MaxCol()-7 ) 

      USE Kunden NEW EXCLUSIVE 

      @ 10,10 SAY "Nachname"  GET FIELD->NachName 
      @ 12,10 SAY " Vorname"  GET FIELD->VorName 
      READ 

   RETURN 

   PROCEDURE ShowTime( nRow, nCol ) 
      DO WHILE .T. 
         DispOutAt( nRow, nCol, Time() ) 
         Sleep(100) 
      ENDDO 
   RETURN 
KSET* Funktionen werden als seperater Thread abgefragt.

In meinem Beispiel habe ich einen "eigenen" Statusbar statt dem interen
Xbase++ XbpStatusbar()

Code: Alles auswählen

PROCEDURE MAIN

   // mal als "normaler" Thread statt SetTimerEvent
   oStatus := Thread() :new()
   oStatus:setInterval( 100 )
   oStatus:start( "KBSTATUS", oStatbar, oPanel, oDlg )
...

PROCEDURE KBSTATUS( oStatbar, oPanel, oHaupt )

STATIC lCAPS := .F.
STATIC lINS  := .F.
STATIC lNUM  := .F.

      oStatbar:oTime:setCaption( TIME() )                      // Zeitanzeige

   *   IF AppKeyState(VK_SCROLL  , .t.) == APPKEY_TOGGLED
   *   'ON '
   *   ELSE
   *   'OFF'
   *   ENDIF

   IF AppKeyState( VK_CAPITAL, .t. ) == APPKEY_TOGGLED
      IF lCAPS
      ELSE
         oStatbar:oCaps:SetcolorBG( GRA_CLR_RED )
         oStatbar:oCaps:InvalidateRect()
         lCAPS := .T.
      ENDIF
   ELSE
      IF lCAPS
         oStatbar:oCaps:SetcolorBG( GRA_CLR_BACKGROUND )
         oStatbar:oCaps:InvalidateRect()
         lCAPS := .F.
      ENDIF
   ENDIF

   IF AppKeyState( VK_INSERT, .t. ) == APPKEY_TOGGLED
      IF lINS
      ELSE
         oStatbar:oIns:SetcolorBG( GRA_CLR_RED )
         oStatbar:oIns:InvalidateRect()
         lINS := .T.
      ENDIF
   ELSE
      IF lINS
         oStatbar:oIns:SetcolorBG( GRA_CLR_BACKGROUND )
         oStatbar:oIns:InvalidateRect()
         lINS := .F.
      ENDIF
   ENDIF

   IF AppKeyState( VK_NUMLOCK, .t. ) == APPKEY_TOGGLED
      IF lNUM
      ELSE
         oStatbar:oNum:SetcolorBG( GRA_CLR_BACKGROUND )
         oStatbar:oNum:InvalidateRect()
         lNUM := .T.
      ENDIF
   ELSE
      IF lNUM
         oStatbar:oNum:SetcolorBG( GRA_CLR_RED )
         oStatbar:oNum:InvalidateRect()
         lNUM := .F.
      ENDIF
   ENDIF

RETURN
zu 3.) bis auf das __MXRELEASE sind das doch die "normalen" PPO´s ?

nimm doch einfach mal die "_" Unterstriche raus, also statt __QUIT nur QUIT
gruss by OHR
Jimmy
FlashNash
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 101
Registriert: Di, 22. Jul 2008 15:39
Wohnort: RE - NRW
Kontaktdaten:

Beitrag von FlashNash »

Die oberen UDF´s sind schon klar, stammen ja aus einer thirdparty LIB.

Die UDF´s mit den beiden Unterstrichen (__xyz) ralle ich nicht. Ich kann die beiden Unterstriche nicht rausnehmen. Die unresolved mit den beiden Unterstrichen stehen kurioserweise durch

PBuild NexusSAA.XPJ > NexusSAA.ERR

in der NexusSAA.ERR als unresolved external so, als wären die garnicht vorhanden. Sind aber doch ´interne´ UDF´s d.h. früher aus Clipper und sollten doch auch in der XBase LIB enthalten sein. Oder denke ich hier in eine falsche Richtung?
Gruß Rolf
Admin of www.Ruhrpottboard.de
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Beitrag von AUGE_OHR »

hi,
FlashNash hat geschrieben: Die UDF´s mit den beiden Unterstrichen (__xyz) ralle ich nicht. Ich kann die beiden Unterstriche nicht rausnehmen. Die unresolved mit den beiden Unterstrichen stehen kurioserweise durch

PBuild NexusSAA.XPJ > NexusSAA.ERR

in der NexusSAA.ERR als unresolved external so, als wären die garnicht vorhanden. Sind aber doch ´interne´ UDF´s d.h. früher aus Clipper und sollten doch auch in der XBase LIB enthalten sein. Oder denke ich hier in eine falsche Richtung?
hm ... irgendwie verstehe ich nicht was da passiert.

a.) steht bei dir im "original" Source was mit "__" oder
b.) es steht nicht bei dir im Source ?

Wenn es a.) ist wäre es ja wohl kein Problem ein _QUIT_ gegen ein QUIT
zu tauschen, aber wenn es b.) dann muss das irgendwie an deinem *.XPJ
Project File liegen ... bitte mal posten.

Das 16-Bit LIBs (von Cl*pper) nicht mit in das *.XPJ gehören ist wohl klar.
gruss by OHR
Jimmy
FlashNash
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 101
Registriert: Di, 22. Jul 2008 15:39
Wohnort: RE - NRW
Kontaktdaten:

Beitrag von FlashNash »

Nein Jimmy, im Source steht nix mit __xyz darum kapiere ich das ja nicht. Wie schon gesagt, ALLE anderen UDF´s sind kein Thema, stammen aus thirdparty Libs und die werde ich step by step ändern und/oder was unnötig ist bei GUI, rauswerfen.

Unverständlich ist mir, dass die UDF´s mit den zwei Unterstrichen angemeckert werden. Ich habe die Clipper.LIB ´zerlegt´ und finde die meisten dort wieder. Darum kapiere ich es nicht, dass die als unresolved definiert angegeben werden. :?



Diese finde ich in der Cl*pper.LIB
-------------------------------------------
__KEYBOARD
__ATPROMPT
__MENUTO
__DBLOCATE
__DBPACK
__EJECT
__DBZAP
__DBSDF
__DBAPP
__QUIT



NICHT in Cl*pper.LIB zu finden
-------------------------------------------
_GET_
__SETCENTURY
__SETFORMAT
__MXRELEASE
__DBCONTINUE





Hier mein .XPJ File ....


//
// Project - Definition - File created by PBUILD Version 1.90.331
// Date: 11.08.2008 Time: 20:11:36
//

[PROJECT]
COMPILE = xpp
COMPILE_FLAGS = /q /b /n
DEBUG = yes
GUI = no
LINKER = alink
LINK_FLAGS = /FORCE:UNRESOLVED /MAP:\PRO_X\LOG\NexusSAA.MAP /DE
RC_COMPILE = arc
RC_FLAGS = /v
OBJ_DIR = \PRO_X\OBJ
INCLUDE = \PRO_X\SRC\INC
NEXUSSAA.XPJ

[NEXUSSAA.XPJ]
NEXUSSAA.EXE

[NEXUSSAA.EXE]
// $START-AUTODEPEND
NXMAX.OBJ
SAAMUP.OBJ
SAAMMENU.OBJ
SAAMFUNC.OBJ
SAAF2.OBJ
SAANOTI.OBJ
SAAERROR.OBJ
NXMAXSFI.OBJ
NXMAXDSP.OBJ
SWAPPRG0.OBJ
SHOWSUM0.OBJ
BAR1.OBJ
BAR16.OBJ
BAR4.OBJ
BAR18.OBJ
VERKA1.OBJ
VERKA14.OBJ
VERKA18.OBJ
VERKA19.OBJ
VERKOSF1.OBJ
VERKA1F0.OBJ
VERKA1F2.OBJ
VERKA2.OBJ
VERKDRK2.OBJ
VERKDRK3.OBJ
VERKDRK4.OBJ
VERKA5.OBJ
VERKA5B.OBJ
FAKTDRK.OBJ
GRUPPEN.OBJ
GRUPPEN1.OBJ
GRUPPEN2.OBJ
GRUPPEN3.OBJ
OPMAHN.OBJ
OPMAHN1.OBJ
OPMAHN2.OBJ
OPMADRK.OBJ
OPMADRK1.OBJ
OPMADRK2.OBJ
ARTIK1.OBJ
ARTIK19.OBJ
ARTIK18.OBJ
ARTIK2.OBJ
ARTIK4.OBJ
ARTIOSF1.OBJ
ARTIPRPM.OBJ
ARTIDRK.OBJ
ARTIDRK1.OBJ
ARTIDRK2.OBJ
ARTIDRK3.OBJ
ARTIDRK4.OBJ
ARTIDRK5.OBJ
KUNDEN1.OBJ
KUNDEN16.OBJ
KUNDEN17.OBJ
KUNDDRK.OBJ
KUNDDRK1.OBJ
KUNDDRK2.OBJ
KUNDDRK3.OBJ
KUNDDRK5.OBJ
KUNDEN2.OBJ
EINKSFI1.OBJ
EINKA1.OBJ
EINKA1F0.OBJ
EINKA1F2.OBJ
EINKA14.OBJ
EINKA18.OBJ
EINKA19.OBJ
EINKA7.OBJ
EINKSFI2.OBJ
EINKDRK.OBJ
EINKDRK1.OBJ
EINKDRK2.OBJ
EINKDRK3.OBJ
EINKA5.OBJ
EINKA53.OBJ
EINKA2.OBJ
LIEFER1.OBJ
LIEFER16.OBJ
LIEFER17.OBJ
LIEFOSF2.OBJ
LIEFER2.OBJ
LIEFER24.OBJ
LIEFER25.OBJ
LIEFDRK.OBJ
LIEFDRK1.OBJ
LIEFDRK2.OBJ
LIEFDRK3.OBJ
LIEFDRK5.OBJ
PERSSFIL.OBJ
PERSON1.OBJ
PERSON16.OBJ
PERSON15.OBJ
PERSON17.OBJ
PERSON2.OBJ
PERSDRK.OBJ
PERSDRK1.OBJ
PERSDRK2.OBJ
SPESEN1.OBJ
SPESEN15.OBJ
SPESEN2.OBJ
SPESEN3.OBJ
SPESSFIL.OBJ
SERVIC1.OBJ
SERVIC14.OBJ
SERVIC18.OBJ
SERVIC19.OBJ
SERVIC2.OBJ
SERVOSF1.OBJ
SERVI1F0.OBJ
SERVI1F2.OBJ
SERVDRK1.OBJ
FEHLER.OBJ
FEHLER1.OBJ
FEHLER2.OBJ
FEHLER3.OBJ
STD.CH
SET.CH
INKEY.CH
SAAMKEYB.CH
SAAMVARI.CH
XBP.CH
ERROR.CH
// $STOP-AUTODEPEND
NXMAX.PRG
SAAMUP.PRG
SAAMMENU.PRG
SAAMFUNC.PRG
SAAF2.PRG
SAANOTI.PRG
SAAERROR.PRG
NXMAXSFI.PRG
NXMAXDSP.PRG
SWAPPRG0.PRG
SHOWSUM0.PRG
BAR1.PRG
BAR16.PRG
BAR4.PRG
BAR18.PRG
VERKA1.PRG
VERKA14.PRG
VERKA18.PRG
VERKA19.PRG
VERKOSF1.PRG
VERKA1F0.PRG
VERKA1F2.PRG
VERKA2.PRG
VERKDRK2.PRG
VERKDRK3.PRG
VERKDRK4.PRG
VERKA5.PRG
VERKA5B.PRG
FAKTDRK.PRG
GRUPPEN.PRG
GRUPPEN1.PRG
GRUPPEN2.PRG
GRUPPEN3.PRG
OPMAHN.PRG
OPMAHN1.PRG
OPMAHN2.PRG
OPMADRK.PRG
OPMADRK1.PRG
OPMADRK2.PRG
ARTIK1.PRG
ARTIK19.PRG
ARTIK18.PRG
ARTIK2.PRG
ARTIK4.PRG
ARTIOSF1.PRG
ARTIPRPM.PRG
ARTIDRK.PRG
ARTIDRK1.PRG
ARTIDRK2.PRG
ARTIDRK3.PRG
ARTIDRK4.PRG
ARTIDRK5.PRG
KUNDEN1.PRG
KUNDEN16.PRG
KUNDEN17.PRG
KUNDDRK.PRG
KUNDDRK1.PRG
KUNDDRK2.PRG
KUNDDRK3.PRG
KUNDDRK5.PRG
KUNDEN2.PRG
EINKSFI1.PRG
EINKA1.PRG
EINKA1F0.PRG
EINKA1F2.PRG
EINKA14.PRG
EINKA18.PRG
EINKA19.PRG
EINKA7.PRG
EINKSFI2.PRG
EINKDRK.PRG
EINKDRK1.PRG
EINKDRK2.PRG
EINKDRK3.PRG
EINKA5.PRG
EINKA53.PRG
EINKA2.PRG
LIEFER1.PRG
LIEFER16.PRG
LIEFER17.PRG
LIEFOSF2.PRG
LIEFER2.PRG
LIEFER24.PRG
LIEFER25.PRG
LIEFDRK.PRG
LIEFDRK1.PRG
LIEFDRK2.PRG
LIEFDRK3.PRG
LIEFDRK5.PRG
PERSSFIL.PRG
PERSON1.PRG
PERSON16.PRG
PERSON15.PRG
PERSON17.PRG
PERSON2.PRG
PERSDRK.PRG
PERSDRK1.PRG
PERSDRK2.PRG
SPESEN1.PRG
SPESEN15.PRG
SPESEN2.PRG
SPESEN3.PRG
SPESSFIL.PRG
SERVIC1.PRG
SERVIC14.PRG
SERVIC18.PRG
SERVIC19.PRG
SERVIC2.PRG
SERVOSF1.PRG
SERVI1F0.PRG
SERVI1F2.PRG
SERVDRK1.PRG
FEHLER.PRG
FEHLER1.PRG
FEHLER2.PRG
FEHLER3.PRG




Und hier die ersten 100 Lines (von ca. 400) die in der Link-Errorliste (NexusSAA.LER) stehen. Erzeugt mit Command wie folgt:

PBuild NexusSAA.XPJ > NexusSAA.LER



Alaska 32-Bit Linker Version 1.90.331
Copyright (c) Alaska Software 1997-2006. All rights reserved.

\PRO_X\OBJ\NXMAX.obj: error ALK2102: unresolved external symbol __QUIT
\PRO_X\OBJ\SAAMUP.obj: error ALK2102: unresolved external symbol __SETCENTURY
\PRO_X\OBJ\SAAMUP.obj: error ALK2102: unresolved external symbol __QUIT
\PRO_X\OBJ\SAAMUP.obj: error ALK2102: unresolved external symbol _GET_
\PRO_X\OBJ\SAAMUP.obj: error ALK2102: unresolved external symbol WCLOSE
\PRO_X\OBJ\SAAMUP.obj: error ALK2102: unresolved external symbol __SETFORMAT
\PRO_X\OBJ\SAAMUP.obj: error ALK2102: unresolved external symbol CLPFILES
\PRO_X\OBJ\SAAMUP.obj: error ALK2102: unresolved external symbol NETNAME
\PRO_X\OBJ\SAAMUP.obj: error ALK2102: unresolved external symbol __DBLOCATE
\PRO_X\OBJ\SAAMMENU.obj: error ALK2102: unresolved external symbol HELP
\PRO_X\OBJ\SAAMMENU.obj: error ALK2102: unresolved external symbol __KEYBOARD
\PRO_X\OBJ\SAAMMENU.obj: error ALK2102: unresolved external symbol WSELECT
\PRO_X\OBJ\SAAMMENU.obj: error ALK2102: unresolved external symbol __DBLOCATE
\PRO_X\OBJ\SAAMMENU.obj: error ALK2102: unresolved external symbol __DBZAP
\PRO_X\OBJ\SAAMMENU.obj: error ALK2102: unresolved external symbol _GET_
\PRO_X\OBJ\SAAMMENU.obj: error ALK2102: unresolved external symbol WCLOSE
\PRO_X\OBJ\SAAMMENU.obj: error ALK2102: unresolved external symbol __ATPROMPT
\PRO_X\OBJ\SAAMMENU.obj: error ALK2102: unresolved external symbol __MENUTO
\PRO_X\OBJ\SAAMMENU.obj: error ALK2102: unresolved external symbol __DBAPP
\PRO_X\OBJ\SAAMMENU.obj: error ALK2102: unresolved external symbol COLORWIN
\PRO_X\OBJ\SAAMFUNC.obj: error ALK2102: unresolved external symbol WCLOSE
\PRO_X\OBJ\SAAMFUNC.obj: error ALK2102: unresolved external symbol __KEYBOARD
\PRO_X\OBJ\SAAMFUNC.obj: error ALK2102: unresolved external symbol _GET_
\PRO_X\OBJ\SAAMFUNC.obj: error ALK2102: unresolved external symbol WOPEN
\PRO_X\OBJ\SAAMFUNC.obj: error ALK2102: unresolved external symbol WBOX
\PRO_X\OBJ\SAAMFUNC.obj: error ALK2102: unresolved external symbol WSELECT
\PRO_X\OBJ\SAAMFUNC.obj: error ALK2102: unresolved external symbol CXOR
\PRO_X\OBJ\SAAMFUNC.obj: error ALK2102: unresolved external symbol SHOWTIME
\PRO_X\OBJ\SAAMFUNC.obj: error ALK2102: unresolved external symbol KSETCAPS
\PRO_X\OBJ\SAAMFUNC.obj: error ALK2102: unresolved external symbol KSETSCROLL
\PRO_X\OBJ\SAAMFUNC.obj: error ALK2102: unresolved external symbol WSETMOVE
\PRO_X\OBJ\SAAMFUNC.obj: error ALK2102: unresolved external symbol COLORTON
\PRO_X\OBJ\SAAMFUNC.obj: error ALK2102: unresolved external symbol COLORWIN
\PRO_X\OBJ\SAAMFUNC.obj: error ALK2102: unresolved external symbol __DBPACK
\PRO_X\OBJ\SAAMFUNC.obj: error ALK2102: unresolved external symbol __MXRELEASE
\PRO_X\OBJ\SAAF2.obj: error ALK2102: unresolved external symbol __KEYBOARD
\PRO_X\OBJ\SAAF2.obj: error ALK2102: unresolved external symbol WCLOSE
\PRO_X\OBJ\SAAF2.obj: error ALK2102: unresolved external symbol COLORWIN
\PRO_X\OBJ\SAAF2.obj: error ALK2102: unresolved external symbol HELP
\PRO_X\OBJ\SAAF2.obj: error ALK2102: unresolved external symbol __ATPROMPT
\PRO_X\OBJ\SAAF2.obj: error ALK2102: unresolved external symbol __DBLOCATE
\PRO_X\OBJ\SAAF2.obj: error ALK2102: unresolved external symbol WROW
\PRO_X\OBJ\SAAF2.obj: error ALK2102: unresolved external symbol WLASTROW
\PRO_X\OBJ\SAAF2.obj: error ALK2102: unresolved external symbol WCOL
\PRO_X\OBJ\SAAF2.obj: error ALK2102: unresolved external symbol WLASTCOL
\PRO_X\OBJ\SAANOTI.obj: error ALK2102: unresolved external symbol WSELECT
\PRO_X\OBJ\SAANOTI.obj: error ALK2102: unresolved external symbol _GET_
\PRO_X\OBJ\SAANOTI.obj: error ALK2102: unresolved external symbol WCLOSE
\PRO_X\OBJ\SAANOTI.obj: error ALK2102: unresolved external symbol __KEYBOARD
\PRO_X\OBJ\SAAERROR.obj: error ALK2102: unresolved external symbol __QUIT
\PRO_X\OBJ\SWAPPRG0.obj: error ALK2102: unresolved external symbol __KEYBOARD
\PRO_X\OBJ\SWAPPRG0.obj: error ALK2102: unresolved external symbol WCLOSE
\PRO_X\OBJ\SHOWSUM0.obj: error ALK2102: unresolved external symbol WCLOSE
\PRO_X\OBJ\BAR1.obj: error ALK2102: unresolved external symbol __DBPACK
\PRO_X\OBJ\BAR1.obj: error ALK2102: unresolved external symbol __DBLOCATE
\PRO_X\OBJ\BAR1.obj: error ALK2102: unresolved external symbol WSELECT
\PRO_X\OBJ\BAR1.obj: error ALK2102: unresolved external symbol __ATPROMPT
\PRO_X\OBJ\BAR1.obj: error ALK2102: unresolved external symbol __MENUTO
\PRO_X\OBJ\BAR1.obj: error ALK2102: unresolved external symbol WCLOSE
\PRO_X\OBJ\BAR1.obj: error ALK2102: unresolved external symbol __KEYBOARD
\PRO_X\OBJ\BAR1.obj: error ALK2102: unresolved external symbol __DBZAP
\PRO_X\OBJ\BAR1.obj: error ALK2102: unresolved external symbol _GET_
\PRO_X\OBJ\BAR16.obj: error ALK2102: unresolved external symbol WCLOSE
\PRO_X\OBJ\BAR16.obj: error ALK2102: unresolved external symbol _GET_
\PRO_X\OBJ\BAR4.obj: error ALK2102: unresolved external symbol __DBLOCATE
\PRO_X\OBJ\BAR4.obj: error ALK2102: unresolved external symbol WSELECT
\PRO_X\OBJ\BAR4.obj: error ALK2102: unresolved external symbol _GET_
\PRO_X\OBJ\BAR4.obj: error ALK2102: unresolved external symbol WCLOSE
\PRO_X\OBJ\BAR4.obj: error ALK2102: unresolved external symbol __EJECT
\PRO_X\OBJ\BAR18.obj: error ALK2102: unresolved external symbol __DBLOCATE
\PRO_X\OBJ\BAR18.obj: error ALK2102: unresolved external symbol _GET_
\PRO_X\OBJ\BAR18.obj: error ALK2102: unresolved external symbol WCLOSE
\PRO_X\OBJ\BAR18.obj: error ALK2102: unresolved external symbol COMPSUMBK
\PRO_X\OBJ\BAR18.obj: error ALK2102: unresolved external symbol __EJECT
\PRO_X\OBJ\BAR18.obj: error ALK2102: unresolved external symbol WSELECT
\PRO_X\OBJ\BAR18.obj: error ALK2102: unresolved external symbol PRNQUIFUS
\PRO_X\OBJ\VERKA1.obj: error ALK2102: unresolved external symbol __DBLOCATE
\PRO_X\OBJ\VERKA1.obj: error ALK2102: unresolved external symbol WSELECT
\PRO_X\OBJ\VERKA1.obj: error ALK2102: unresolved external symbol __ATPROMPT
\PRO_X\OBJ\VERKA1.obj: error ALK2102: unresolved external symbol __MENUTO
\PRO_X\OBJ\VERKA1.obj: error ALK2102: unresolved external symbol WCLOSE
\PRO_X\OBJ\VERKA1.obj: error ALK2102: unresolved external symbol _GET_
\PRO_X\OBJ\VERKA1.obj: error ALK2102: unresolved external symbol __KEYBOARD
\PRO_X\OBJ\VERKA14.obj: error ALK2102: unresolved external symbol WSELECT
\PRO_X\OBJ\VERKA14.obj: error ALK2102: unresolved external symbol __ATPROMPT
\PRO_X\OBJ\VERKA14.obj: error ALK2102: unresolved external symbol __MENUTO
\PRO_X\OBJ\VERKA14.obj: error ALK2102: unresolved external symbol WCLOSE
\PRO_X\OBJ\VERKA14.obj: error ALK2102: unresolved external symbol __DBLOCATE
\PRO_X\OBJ\VERKA14.obj: error ALK2102: unresolved external symbol F2VIEWONOFF
\PRO_X\OBJ\VERKA14.obj: error ALK2102: unresolved external symbol _GET_
\PRO_X\OBJ\VERKA18.obj: error ALK2102: unresolved external symbol __KEYBOARD
\PRO_X\OBJ\VERKA18.obj: error ALK2102: unresolved external symbol __ATPROMPT
Gruß Rolf
Admin of www.Ruhrpottboard.de
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Beitrag von AUGE_OHR »

hi,

verwendest du Cl*pper und Xbase++ "gleichzeitig" ?
wie sieht dein Envioment (SET Variabeln) aus ?

Das Setup von Xbase++ "hängt" seine SET "an das Ende" der Usersection
sodas XBase++ evtl. im PATH "hinter" den Cl*pper steht ?

bei der Installation wird eine *.BAT (in \ALASKA) erzeugt dir die zeigt
was du für Xbase++ brauchst.
gruss by OHR
Jimmy
FlashNash
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 101
Registriert: Di, 22. Jul 2008 15:39
Wohnort: RE - NRW
Kontaktdaten:

Beitrag von FlashNash »

Ich verwende zwar XBase + Clipper jedoch ist die Environmentumschaltung (durch BATches) für beide okay, alles schon überprüft.

Hier von XBase:

INCLUDE=G:\PRO_X\PL\XPPW32\INCLUDE;G:\PRO_X\PL\exp19\include

LIB=G:\PRO_X\PL\XPPW32\LIB;G:\PRO_X\PL\exp19\lib

Path=G:\Programme\PC Connectivity Solution\;G:\WINDOWS\system32;G:\WINDOWS;G:\WINDOWS\System32\Wbem;G:\Programme\ATI Technologies\ATI Control Panel;G:\PRO_X\PL\XPPW32\LIB;G:\PRO_X\PL\XPPW32\BIN;G:\PRO_X\PL\exp19\bin19;G:\PRO_X\PL\exp19\bin

XPPRESOURCE=G:\PRO_X\PL\XPPW32\RESOURCE;G:\PRO_X\PL\XPPW32\RESOURCE\ICON;G:\PRO_X\PL\XPPW32\RESOURCE\FONT;G:\PRO_X\PL\XPPW32\RESOURCE\BITMAP


Hinweis: \.\ALASKA\ habe ich nicht da ich das Xbase strukturmäßig in meine Programmierumgebung eingebaut habe. Ist ja auch egal WO genau XBase liegt, Hauptsache ist doch, die Pfade stimmen.
Gruß Rolf
Admin of www.Ruhrpottboard.de
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Beitrag von AUGE_OHR »

hi,

ich habe mal ein kleines Demo gebaut und ausser EJECT und SDF*
alles "eingebaut". Das müsste sowohl mit Cl*pper als auch Xbase++´
funktionieren.

Code: Alles auswählen

#include "INKEY.ch"

#IFDEF __XPP__
   #include "Xbp.ch"
   #include "NLS.CH"
   #include "Appevent.ch"

*PROCEDURE APPSYS
*RETURN

#ENDIF

PROCEDURE MAIN
/*
*KEYBOARD
*ATPROMPT
*MENUTO
*DBLOCATE
*DBPACK
EJECT
*DBZAP
DBSDF
*DBAPP
*QUIT

NICHT in Cl*pper.LIB zu finden
-------------------------------------------
*_GET_
*__SETCENTURY
*__SETFORMAT
__MXRELEASE
*__DBCONTINUE
*/

LOCAL nMenuItem := 1, PromptList:={}

   SET CENTURY ON
   SET EPOCH TO YEAR( DATE() ) - 50
   SET DATE GERMAN

* SET FORMAT  - Dieser Befehl wird in Xbase++ nicht unterst
gruss by OHR
Jimmy
FlashNash
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 101
Registriert: Di, 22. Jul 2008 15:39
Wohnort: RE - NRW
Kontaktdaten:

Beitrag von FlashNash »

Thx Jimmy, macher ich noch heute, solbald ich etwas ´Luft´ habe. Werde dann hier berichten.
Gruß Rolf
Admin of www.Ruhrpottboard.de
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo,

unter Clipper hat man einfach eine Funktion mit gleichem Namen wie die in der Clipper-lib erzeugt um den Inhalt einer Systemfunktion auszutauschen, z.B. das Keybord-System.

Unter Xbase++ geht das so nicht, da dort zur Runtime DLL dahinter stehen. Ich meine zwar in diesem Falle wäre der Fehler eine 'doppelte Definition' eines Funktionsnamens gewesen, aber eventuell könnte das auch andere Fehler verursachen, also danach sehen.

Auch z.B. eine MEMVAR.CH aus Clipper-Tagen muss man umbenennen nach z.B. MyMemVar.CH, denn es gibt eine mit solchem Namen von Xbase++ :!:

Eventuell haben ja noch andere Dateien Namenkonflikte.
Gruß
Hubert
FlashNash
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 101
Registriert: Di, 22. Jul 2008 15:39
Wohnort: RE - NRW
Kontaktdaten:

Beitrag von FlashNash »

Die Sache mit den internen UDF´s vor denen jeweils zwei unterstriche (__xyz) stehen hat sich erledigt.

Sakkra.... war meine eigene Dummeit. :roll: Ich hatte in meiner Programmierumgebung den Drivekenner von C: nach G: in meinen BATches ´global´ getauscht. Dabei wurde dummerweise in einem bestimmten BATch die PATH Angabe fälschlich bestückt. :? Nach dem ich das nun korregiert habe, sind zumindest diese __xyz unresolved verschwunden.

So... und nun geht es weiter mit den UDF´s die aus der CA-Tool II (die UDFs für Windowhändling) stammen. Mal sehen, wie ich damit weiter ´backe´. Ich werde berichten.

Danke Euch für die tolle Unterstützung hier. :wink:
Gruß Rolf
Admin of www.Ruhrpottboard.de
Antworten