Frequently Asked Questions = Veel
Gestelde Vragen over


Inhoudsopgave
 | Ik wil van DOS naar Windows: wat is de weg? |
 | Kan ik QB .BAS programma’s makkelijk overzetten of komt er heel wat meer bij kijken? |
 | Blijft er een DOS versie van PowerBASIC, of wordt
alles Windows? |
 | Moet ik dan PB/CC of PB/DLL kiezen? |
 | Komt er ook een PowerBASIC versie speciaal voor
Linux? |
 | Kun
je in PB makkelijk netwerkveilige/geschikte applicaties maken (file/record
locking e.d.) |
 | CRITICAL DISK ERROR ON DRIVE .... |
 | CANNOT ACCESS TEMPORARY FILE PBVMS.$$$ |
 | Library not found |
 | FOUT 477 of 504 bij gebruik van SVGAPB.PBL |
 | Destination file write error Error 496 |
 | Kan ik in PB/DLL zelfstandige EXE files maken? |
 | Is de wijze waarop programma's worden gemaakt
vergelijkbaar met die van Visual Basic? |
 | Is PB/DLL 6.0 volledig toegerust voor database
beheer? |
 | Kan ik met uitsluitend PB/DLL 6.0 werken? |
 | Kan ik met PB/DLL 6.0 zelfstandig draaiende
programma's maken die op pc's van derden draaien? |
 | Zijn er speciale voorwaarden voor verkoop van
programma's die zijn gemaakt met PB/DLL? |
 | Upgrade Error bij installeren van PB/DLL 6.0
upgrade, uitgaande van PB/DLL 1.x |
 | Programma's onder Windows NT en de buitenwereld (I/O
poorten benaderen) |
 | Bij een DLL-aanroep vanuit VB de foutmelding
Run-time error '453': Can't find DLL entry point "naam v.d. routine" in
"naam v.d. DLL". |
 | Hoe kan ik de functies uit de Windows 32-bit API
gebruiken? |
 | Hoe moet ik bijvoorbeeld een printer gebruiken? |
 | Hoe kan ik geluid via Windows laten klinken? |
 | Ik wil een stuk source code van een bladzijde af
copiëren en deze daarna in PowerBASIC met PASTE plaatsen |
 | Werkt
PB samen met access / winword / outlook enz.? |

Algemeen
Ik wil van DOS
naar Windows: wat is de weg? |
Als u tot nu toe altijd
in de DOS omgeving heeft geprogrammeerd (met Turbo BASIC, PowerBASIC for DOS, QBasic of
QuickBASIC), maar nu naar de Windows omgeving wilt overstappen, dan is ons advies het
product PB/CC, zeker als u hoofdzakelijk in de tekstmode werkt. Het voordeel van PB/CC is dat alle gangbare Basic commando's uit de DOS wereld gewoon
normaal werken, zoals bijvoorbeeld inputs (INKEY$, INPUT, INSTAT etc), en ook de output
(PRINT, PRINT USING, LPRINT etc.). De noodzakelijke aanpassingen om de toepassing in echte
32-bit native Windows code om te zetten zijn beperkt tot een paar regels aan het begin en
eind van uw code, en eventueel declaratie van uw variabelen (als u dat niet expliciet doet
door bijvoorbeeld a% te gebruiken). Het totaal vormt dan een FUNCTION, die vanuit vanuit
Windows wordt aangeroepen. U heeft wel volledige toegang tot allerlei Windows functies,
maar gebruik van grafische afbeeldingen e.d. is slechts beperkt (u kunt wel
alle Windows eigen grafische routines aanroepen!). Indien u volledig gebruik
wilt maken van de Windows mogelijkheden, zoals ook aansturen van de printer via de Windows
driver e.d., dan ligt de overstap naar PB/DLL
(tegenwoordig PB/WIN geheten) meer voor de hand. U
kunt dan echter eerder genoemde invoer- en uitvoercommando's niet meer gebruiken, maar zal
deze om moeten zetten naar Windows functies.
Bedenk wel dat het Windows-model een aantal
zaken niet toelaat, zoals directe toegang tot hardware. Daarom zijn o.a.
de functies INP en OUT niet meer beschikbaar vanaf versie PB/CC 2.
Een paar voorbeelden van grafisch
gebruik met PB/CC vindt u op mijn voorbeelden
bladzijde
|
Kan ik QB .BAS programma’s makkelijk overzetten of komt er heel wat meer bij kijken? |
PowerBASIC for DOS 3.x was al 99 % compatible
met QBasic en QuickBASIC op source code niveau. Dit houdt dus in dat u
source code van een QBasic programma met slechts kleine aanpassingen
geschikt kan maken om te compileren met PowerBASIC for DOS. Standaard
wordt er een utility meegeleverd die de QBasic code als invoer gebruikt en
dan een bestand oplevert waar een aantal wijzigingen automatisch zijn
uitgevoerd. Een aantal instructies in QBasic kunnen (zoals vaker gebeurt!)
verschillende doelstellingen hebben, dus kunnen daarom niet 1-op-1 worden
omgezet. De utility geeft hiervoor aanwijzingen hoe de code aangepast kan
worden, afhankelijk van de oorspronkelijke bedoeling.
Bibliotheken die u heeft kunt u blijven gebruiken MITS u deze
bibliotheken in source code heeft. U kunt dan namelijk de source code
omzetten naar PB-code en vervolgens de bibliotheken opnieuw compileren.
Bestaande reeds gecompileerde QB bibliotheken gebruiken is volgens mij
niet mogelijk (indien u weet van wel, dan graag bericht, aangezien ik zelf
geen QB gebruik).
De omzetting daarna naar een Windows omgeving om 32-bit native Windows
code te maken, is hetzelfde als in het artikel hierboven is beschreven.
Kortom: het is niet 'even omzetten', maar er is bij gebruik van PB/CC
zeker een haalbare zaak. Wel moet u bedenken dat, hoewel uw toepassing nu
Windows code is geworden met PB/CC, u nog steeds een toepassing heeft die
in de console mode wordt uitgevoerd, dus lijkend op een DOS toepassing in
een Windows DOS-scherm.
|
Blijft er een DOS
versie van PowerBASIC of wordt alles Windows? |
De PowerBASIC Inc. is
altijd wat terughoudend met het bekend maken van toekomstplannen. Hoofdreden, zo vertelde
Dave Navarro mij, is dat men grote concurrenten (zoals bijvoorbeeld Microsoft) geen
inzicht wil gunnen in de grootte van de markt en de strategie van nieuwe producten.
Daarnaast wil men pas over producten praten als deze ook daadwerkelijk
beschikbaar zijn (dus niet maanden van-te-voren aankondigen en niet kunnen
leveren). Feit is dat PowerBASIC Inc zich sinds 1997 gestort heeft op
de markt van Windows programmering, met producten als PB/CC en PB/DLL. Toch verwacht ik
dat men zeker de al-oude DOS compiler lijn laat voorbestaan en wel om de volgende redenen:
 | PowerBASIC Inc heeft met PB/DOS een ijzersterk
product in handen, dat nog steeds door vrijwel alle partijen wordt geklasseerd
als het
meest uitgebreide en vooral de snelste compiler die voor de DOS wereld beschikbaar is.
|
 | De DOS wereld voor veel toepassingen een grote markt
blijft: zo worden veel machines in bijvoorbeeld de industrie nog steeds met DOS gebruikt,
omdat in procesbesturing de typische eigenschappen van Windows niet bruikbaar zijn. Een
paar daarvan zijn: gebrek aan tijd-planning (geen controle over de tijd), Windows vereist
al minimaal 100 MB opslagruimte terwijl veel industriële PC's zijn uitgerust met een
silicon-harddisk (vaak van enkele megabytes statisch geheugen) enz enz.
|
 | Aangezien het huidige product al aardig 'af' is,
gaat het mogelijk alleen nog om eventuele bugfixes en kleine uitbreidingen met nieuwe
snufjes (suggesties zijn trouwens welkom: stuur die aan support@powerbasic.com ). Ook bij de HCC Basic
gebruikersgroep zitten velen die uw vragen willen beantwoorden. Alleen vanwege deze
gebruikersgroep is het interessant om lid te worden. Ik hoop dat u er begrip voor heeft,
dat ik naast dit werk (en ander werk) niet echt veel tijd overhoudt om mij in uw
specifieke probleem te verdiepen.
|
 | Sommige mensen zullen nog vele jaren gebruik blijven
maken van machines zonder co-processor (zoals 8086, 80286, 80386, 80486SX) en vanaf
Windows 98 is een co-processor (een x87) benodigd is onze ervaring. Op deze machines, met
vaak kleine harde schijven, draait het nieuwste van het nieuwste niet meer, maar zijn
uitstekend geschikt voor het draaien van programmatuur geschreven met PowerBASIC for DOS
(PB/DOS).
|
 | PowerBASIC Inc ondersteunt nog
immer actief PowerBASIC for DOS, onder andere via email (support@powerbasic.com)
en het actieve webforum
(overzicht mailings van de laatste 20 dagen), speciaal voor de DOS
omgeving. |
Al met al (en zo luiden de geruchten ook) voldoende
reden om de PowerBASIC for DOS lijn in stand te houden, waar mogelijk te verbeteren, en
eventueel uit te breiden. Vanzelf zit tegenwoordig het gros van de programmeurs van
PowerBASIC Inc nu op de Windows-producten, aangezien hier nog veel is te verbeteren en uit
te breiden. Maar wees gerust: volgens mij blijft PB/DOS er tot in lengte van dagen. |
Kan ik met PB/CC
en/of PB/DLL en/of PB/WIN gewoon in tekst mijn codes schrijven en daarna compileren, dus net als met PB35? Heb ik
dan Visual BASIC nodig? |
Met PB/DLL
kunnen ook
zelfstandig executables (.EXE bestanden) worden gemaakt, los van Visual BASIC. U heeft dus
geen Visual Basic nodig! PB/DLL bevat een selectie van de oude DOS-commando's (invoer en
uitvoer commando's zijn hiervan niet beschikbaar, i$=inkey$ werkt dus niet meer onder
Windows) en vele nieuwe aanroep mogelijkheden van de Windows API. Hierbij gebruikt u dus
rechtstreeks Windows functies voor het ophalen van keyboard-invoer, of doet u een aanroep
om een bepaald type window te openen. De
invoer in PB/DLL is normale Basic code, dus vergelijkbaar met PB/DOS. Met PB/DLL maakt u
true native 32-bit Windows code, die klein is en uiterst snel uitvoerbaar. Op deze site
treft u voorbeelden aan, en wel op de voorbeeldbladzijde.
De voorbeelden daar laten u zowel de source code zien, als de kleine en snelle EXE
bestanden.
Bedenk u wel, dat programmeren met PB/DLL anders
gaat dan in DOS mode: Windows vereist een event-driven benadering, oftewel u specificeert
per knop of muisklik wat er moet gebeuren!
Als u bestaande DOS code wilt overzetten naar
Windows code èn u gebruikt geen grafische schermen (dus alleen tekstmode), dan lijkt mij
PB/CC de beste keus: slechts weinig aanpassingen nodig (invoer en uitvoer routines zoals
inkey$ werken wèl). Verder biedt PB/CC dezelfde snelheid als PB/CC. Daarnaast kunt u met
PB/CC vanaf versie 2.0 gebruik maken van typische Windows mogelijkheden als TCP/IP
(internet verbinding zelf opzetten vanuit uw applicatie), bijvoorbeeld voor registreren of
raadplegen van een database via internet.
Bij PB/DLL wordt vaak gesproken over Visual BASIC
omdat PB/DLL oorspronkelijk was bedoeld als een uitbreiding voor VB programmeurs om hun
slome VB code om te zetten naar snelle DLL bestanden met behulp van de PowerBASIC
technologie. PB/DLL is vanaf
versie 7 PB/WIN genaamd. |
Komt er ook een
PowerBASIC versie speciaal voor Linux? |
Het duidelijkste
antwoord dat ik ben tegengekomen is van Dave Navarro van PowerBASIC Inc. in de nieuwsgroep
alt.lang.powerbasic (25-11-99): .......
I'll probably get in trouble for saying this,
but... Our long term goal
definately includes Linux and one or two operating systems that don't run
on Intel chips. As you well know, Intel assembler code doesn't run on
non-Intel chips, so something will have to be done (and Linux runs on
non-Intel chips as well).
That's all I can say at this point.
--Dave
"Ik krijg er wellicht
problemem met dat ik dit zeg, maar ons lange termijn doel omvat zeker Linux en één
of twee andere besturingssystemen die niet op Intel chips werken. Zoals je weet, draait
Intel assembler code niet op niet-Intel chips, dus er moet iets gebeuren (en Linux draait
ook op niet-Linux chips).
Dat is alles wat ik er over kan
zeggen." |
Kun
je in PB makkelijk netwerkveilige/geschikte applicaties maken (file/record
locking e.d.) |
Ja, want alle versie van PowerBASIC hebben
hiervoor mogelijkheden. Men kan een bestand bijvoorbeeld openen voor lezen
en verdere toegang blokkeren, of voor lezen/schrijven en anderen
blokkeren. Een stukje uit de helpfile van PB/WIN 7 over de LCOK optie:
Specifies the type of access other Processes will have to the file. If a LOCK clause is not specified in the OPEN statement, the default LOCK READ WRITE mode is applied. This mode ensures exclusive access to the file, and enables PowerBASIC to optimize its internal buffering for utmost I/O performance. If other Processes or threads are to be permitted WRITE access to the file (LOCK SHARED or LOCK READ), then internal buffering is disabled. Whilst performance may be marginally lower, it ensures that data read from the file is completely up-to-date.
lock Description
LOCK SHARED Both read and write operations allowed
LOCK WRITE Prevent write operations
LOCK READ Prevent read operations
LOCK READ WRITE Neither read nor write operations allowed (default)
To open a text file for OUTPUT and allow other Processes to only read the file, use the following:
OPEN "MYFILE.TXT" FOR OUTPUT LOCK WRITE AS #1 |

PowerBASIC for DOS Compiler
CRITICAL DISK ERROR ON
DRIVE .... |
Deze foutmelding kan
voorkomen als u bijvoorbeeld onder Windows 95/98 probeert een tweede copie van
PowerBASIC op te starten. Doordat het besturingssysteem een aantal bestanden probeert te
openen die reeds door eerste copie zijn geopend, gaat het fout en krijgt u deze melding.
De Windows 95/98 versies die wij zelf hebben getest geven allemaal deze foutmelding,
terwijl een waarschuwing dat één of meer bestanden reeds zijn geopend, meer op zijn
plaats is. In de Englestalige programma's heet het dan vaak een 'share
violation'. Remedie:
Kies voor afbreken van de handeling (Abort), en
controleer met ALT TAB de verschillende applicaties die reeds open staan. Indien u
geen andere copie van PowerBASIC tegenkomt, betreft het misschien toch een diskfout.
Probeer in dat geval SCANDISK om de schijf te controleren op fouten. Als u zou kiezen
voor de optie Retry (Opnieuw proberen) dan lijkt PowerBASIC verder goed op te starten,
maar na opstarten krijgt u meteen een volgende foutmelding, maar nu van PowerBASIC (zie
hieronder): |
CANNOT ACCESS
TEMPORARY FILE PBVMS.$$$ |
Het bovengenoemde
bestand is een tijdelijk bestand dat PowerBASIC aanmaakt tijdens het opstarten in de
directorie die u met de omgevingsvariabelen TEMP of PBTEMP heeft opgegeven. Indien dat
niet lukt (bijvoorbeeld doordat het de tweede versie betreft, of doordat de directorie
niet bestaat), krijgt u eerder genoemde foutmelding. Remedie:
Als het eerder goed was en u gebruikt Windows: zorg
ervoor dat slecht één copie van PowerBASIC tegelijk aktief is (controleren met
ALT TAB of in de taakmanager)
In alle andere gevallen: controleer met het
commando SET op de DOS-prompt of de omgevingsvariabele PBTEMP is gedefinieerd. Indien deze
is gedefinieerd, moet deze beslist naar een geldige en bestaande directorie verwijzen.
Indien PBTEMP niet is gedefinieerd, gebruikt PowerBASIC de variabele TEMP. Hiervoor gelden
dezelfde eisen. Definiëren van een variabele doet u vanaf de DOS-prompt met:
SET PBTEMP=C:\PB respectievelijk SET TEMP=C:\DOS. Ikzelf neem hiervoor het liefst een
aparte directorie voor alle tijdelijke bestanden: SET TEMP=C:\DOS\TEMP. Zorgt u er dus wel
voor dat deze bestaat!
Trouwens: dit is bijvoorbeeld onder Windows NT een
handige manier om te zien wie op dat moment de PowerBASIC compiler gebruikt (middels
opvragen van 'ownership' van het $-bestand in de PowerBASIC directory. Windows NT houdt nl
daarmee bij wie de gebruikers is (zoals bij DOS bijvoorbeeld SHARE dat deed). Aan de datum
en tijd kunt u bovendien zien sinds wanneer het bestand wordt gebruikt. |
Library not found |
PowerBASIC kan gebruik
maken van bibliotheekbestanden (libraries) waarin veel gebruikte functies zijn opgenomen.
Deze bestanden worden standaard met de PowerBASIC for DOS compiler meegeleverd. Als u
echter net het PowerBASIC pakket heeft geïnstalleerd, dan heeft u wellicht nog niet de
bilbiotheekbestanden aangemaakt. Bij
PowerBASIC heeft men er nl. voor gekozen om dergelijke fucnties als sourcecode mee te
leveren, zodat u als meer-ervaren programmeur de fucnties kunt aanpassen aan uw eigen
voorkeuren (bijvoorbeeld extra fucnties, andere kleuren, pieptoontjes bij gfouten e.d.).
Om ruimte op de distributiediskettes te besparen heeft men nog niet het bibliotheek
bestand aangemaakt. Met een batch bestand dat in de directorie PB\EXAMPLE staat kunt u
zelf het bibliotheekbestand PB35.PBL aanmaken: BLDPBL.BAT (voor: Build
PBL-file).
U dient ervoor te zorgen dat de compiler files (oa.
PBC.EXE) in de werkdirectorie beschikbaar zijn (bijvoorbeeld middels de PATH instelling,
het APPEND commando, of door alle noodzakelijke bestanden in één directorie te hebben).
Als u nu het batch bestand opstart, zullen de deelbestanden COMMUNIT.BAS, DOSUNIT.BAS,
SCRNUNIT.BAS etc. naar zogenaamde Units (.PBU) worden gecompileerd. Na deze handeling
worden de Units samengebracht in de standaard bibliotheek PB35.PBL, die u kunt aanroepen
met het commando $LINK "PB35.PBL". Indien uw bestand op een andere (vaste)
plaats staat, kunt u ook een volledig of relatief pad voor het bestand aangeven.
Remedie:
Zorg ervoor dat het bestand PB35.PBL (of
PB32.PBL bij PowerBASIC versie 3.2) aanwezig is (eventueel op bovengenoemde wijze
aanmaken) en dat de verwijzingen in PowerBASIC ook goed zijn ingesteld:
- Instellen bij OPTIONS, dan DIRECTORIES en vervolgens LINK DIRECTORY
- Volledig pad opgeven bij het commando $LINK "C:\pb\example\PB35.PBL" |
FOUT 477 of
504 bij gebruik van SVGAPB.PBL |
Deze fouten kunnen
optreden als u probeert een versie 2.5 of lager van de SVGA bibliotheek te gebruiken met
de versie 3.5 van PowerBASIC . Aangezien PowerBASIC vanaf versie 3.5 een andere methode
gebruikt van geheugenbeheer werkt dit niet meer samen met bibliotheken die met oudere
versies van PowerBASIC zijn gecompileerd. Zephyr, de maker van de SVGAPB bibliotheek, stelt i.s.m. het Fries Computer
Bedrijf/FCB gratis patches beschikbaar voor het opwaarderen van uw oudere versies (alle
versies 2.3 en 2.4) SVGA naar de nieuwste versie 2.5. Bovendien is er een patch
beschikbaar om deze nieuwste versie ook geschikt te maken voor PowerBASIC 3.5. Alleen de
geregistreerde versies kunnen hiervan gebruik maken, dus de shareware versies niet! FCB
verkoopt alleen de geregistreerde versie, dus als u SVGA via ons heeft aangeschaft kunt u
de bijgaande patches gebruiken.
Zie bij upgrade regelling. |

PowerBASIC console compiler for Windows PB/CC
Destination file
write error Error 496 |
 Ook deze fout kan optreden indien een eerste versie van het
gecompileerde programma nog actief is, en een tweede versie middels compileren wordt
gemaakt. Deze tweede versie kan echter niet worden weggeschreven omdat de eerste nog
steeds actief is. De remedie is: zoek met ALT TAB de eerste versie van het programma op en
sluit deze toepassing. Nu zal een hernieuwde opdracht tot compileren wèl goed worden
uitgevoerd. |

PowerBASIC compiler voor Windows PB/DLL en
PB/WIN
Kan ik in PB/DLL
en/of PB/WIN zelfstandige EXE files maken? |
In PB/DLL kunnen zowel
zelfstandige executables worden gemaakt, als industriestandaard DLL (Dynamic Link
Libraries) die vanuit elke Windows applicatie kunnen worden gebruikt! PB/DLL kan dus
dienen als zelfstandig platform voor het schrijven van uw eigen toepassingen, maar kan
bijvoorbeeld ook de Visual BASIC programmeur helpen bij het kleiner en sneller maken van
zijn programma's: de trage delen worden uit de VB source code gedestilleerd en vervolgens
met PB/DLL omgezet naar snel uitvoerbare DLL bestanden. Vanuit uw VB applicatie roept u
eenvoudig deze DLL-routines aan. (zie ons FAQ punt 'Aanroep van DLL bestanden vanuit VB') |
Destination file
write error Error 496 |
 Ook deze fout kan optreden indien een eerste versie van het
gecompileerde programma nog actief is, en een tweede versie middels compileren wordt
gemaakt. Deze tweede versie kan echter niet worden weggeschreven omdat de eerste nog
steeds aktief is. De remedie is: zoek met ALT TAB de eerste versie van het programma op en
sluit deze toepassing. Nu zal een hernieuwde opdracht tot compileren wèl goed worden
uitgevoerd (het scherm toont een PB/CC versie, maar behalve twee teksten is dit verder
gelijk). |
Is de wijze waarop
programma's worden gemaakt vergelijkbaar met die van Visual Basic? |
Nee, Visual BASIC is een object
geörienteerde taal, en PowerBASIC PB/DLL is een down-to-earth manier van Windows
programma's maken in de BASIC taal. U gebruikt gewoon normale BASIC statements te samen
met aanroepen van Windows functies. Hierdoor is de werkwijze niet vergelijkbaar met VB.
Als grote voordeel levert PB/DLL (nu PB/WIN) zeer snel lopende, kleine DLL of EXE bestanden af.
|
Is PB/DLL 6.0 en/of
PB/WIN 7.x volledig
toegerust voor database beheer? |
Voor database beheer met bekende
database-structuren zoals dBase etc. zijn geen expliciete functies voorzien. Het is
mogelijk om zelf datastructuren te maken die passen bij de structuur van dat database
bestand. Daarnaast is uiteraard database gebruik volgens eigen standaard mogelijk.
Op de PowerBASIC forums zijn stukken source code te vinden voor het
gebruik met databases zoals o.a. dBase. Artikelen op de forums over database. Verder zijn er speciale producten te koop om volgens een
bepaalde standaard databases te maken en te beheren. Kijk eens bij:
 | http://www.powerbasic.com/products/powertree/
voor het aanmaken van eigen database structuren
|
 | SQL-tools voor een
bibliotheek voor benaderen van bijvoorbeeld FoxPro, MS Access en vele andere database
standaarden volgens het ODBC protocol en SQL. Hiervoor heeft u per database-type een
driver voor ODBC nodig, die u gratis kunt downloaden bij Microsoft. |
|
In de documentatie wordt vaak
gewezen naar Visual basic als basis. Kan ik met uitsluitend PB/DLL 6.0 werken, met andere
woorden bevat het pakket een volwaardige (grafische editor) vergelijkbaar met die zoals in
Visual Basic? |
U kunt met PB/DLL werken om
zelfstandige werkende EXE bestanden te maken. Daarnaast kunt u PB/DLL gebruiken om trage
VB code om te zetten naar snel uitvoerbare DLL bestanden die vanuit uw VB toepassing
worden aangeroepen. Aangezien PB/DLL in eerste instantie als
aanvulling/uitbreidingsbibliotheek voor VB was bedoeld, verwijst oudere documentatie nog
hoofdzakelijk naar die toepassing. Het zelfstandig gebruik van PB/DLL is sinds versie 1.1
dusdanig populair geworden, dat het zelfstandig gebruik een enorme vlucht heeft genomen.
PB/DLL is daarom op twee aparte manieren te gebruiken:
- aanmaken van snel uitvoerbare DLL bestanden, bruikbaar met elke industristandaard
Windows compiler
- aanmaken van zelfstandige EXE bestanden, zonder gebruik van andere producten.
De omgeving van PB/DLL is een Windows omgeving. PB/DLL heeft geen grafische shell waarmee
het programmeer proces vorm kan worden gegeven, alleen een Windows omgeving met Windowtjes
waarin aan de source kan worden gewerkt en de resulaten kunnen worden bekeken (zie pbdll60.jpg voor een screenshot). Er is voorzien in een
debugger, een commandline compiler etc.
|
Zijn er speciale voorwaarden
voor verkoop van programma's die zijn gemaakt met PB/DLL? |
Nee, u mag programmatuur gecompileerd
met PB/DLL verspreiden zonder rechten of iets dergelijks aan PowerBASIC of welke andere
partij dan ook te voldoen. Alleen de uitvoerbare bestanden e.d. op uw compiler-disk mag u
uiteraard niet verspreiden, aangezien u hiervan het normale gebruiksrecht heeft.
|
Upgrade Error bij installeren van
PB/DLL 6.0 upgrade, uitgaande van PB/DLL 1.x |
Bij de
allereerste versies van PB/DLL 6.0 upgrade bleek na aflevering dat de upgrade vanaf PB/DLL
5.0 wèl goed ging, maar die vanaf versie PB/DLL 1.x niet! In dat geval kreeg u
bovenstaande foutmelding te zien. Dit was een fout in de scriptfiles van het setup
programma. Deze fout is in september 1999 ontdekt en gecorrigeerd. Dit houdt echter wel in
dat er een aantal PB/DLL 6.0 upgradepakketten in omloop zijn waarmee niet succesvol vanaf
PB/DLL 1.x kan worden opgewaardeerd. Aangezien via FCB slechts enkele exemplaren van de
eerste versie zijn geleverd èn er slechts een klein aantal PB/DLL 1.x versies in omloop
zijn, zullen slechts zeer weinig personen last hebben van deze fout. Als u wèl deze fout
tegenkomt, laat het ons dan per email even weten. U
ontvangt dan instructies hoe de fout opgelost kan worden. Zet in uw bericht in ieder geval
uw naam, woonplaats, emailadres en het serienummer van zowel de PB/DLL 1.x versie, als van
de upgrade versie PB/DLL 6.0. |
Programma's onder
Windows NT en de buitenwereld (I/O poorten benaderen) |
Windows NT laat het
standaard niet toe ivm het draaien van applicaties in protected mode: het Operating System
(draaiend in real-mode) staat applicaties niet toe directe I/O te plegen ivm de
stabiliteit van het totale systeem. Dat is een keus bij het ontwerp geweest van Windows NT
en draagt veel toe aan de stabiliteit en daardoor het succes van Windows NT. Hierdoor zijn
de 'oude' functies INP en OUT niet beschikbaar. Het product PB/DLL 6.0 (voor creëren van
Windows toepassingen voor bjvoorbeeld NT) ondersteunt wèl het direct aansturen van
geheugenplaatsen, waardoor in principe memory mapped I/O wèl mogelijk is. Daarnaast
worden uiteraard de seriële poorten ondersteund. Alleen dus I/O address-mapped poorten
worden op deze manier dus niet bereikbaar. Meer
informatie (helaas wel in het Engels) is te vinden op: http://www.lvr.com/parport.htm#Programming |
Bij een DLL-aanroep vanuit
Visual BASIC krijg ik de melding: Run-time error '453':
Can't find DLL entry point "naam v.d. routine" in "naam v.d. DLL". |
Tenzij sub/function prototypes een
ALIAS bevatten zal PowerBASIC de sub/function namen als hoofletters exporteren.
Visual BASIC daarentegen verwacht de naam zoals in het DECLARE statement is opgegeven,
tenzij ook een expliciet ALIAS statement in de Visual BASIC declaratie wordt gebruikt. Voorbeeld in PB code
SUB Toontje () EXPORT
' de
subroutine wordt geëxporteerd als "TOONTJE"
SUB Toontje ALIAS "Toontje" () EXPORT ' nu wordt de routine
geëxporteerd als "Toontje"
De namen van routines moeten dus exact
overeenkomen, hetgeen u kunt bereiken door met ALIAS te werken in hetzij uw VB code,
hetzij in uw PB code.
|
Hoe kan ik de functies uit de
Windows 32-bit API gebruiken? |
Microsoft heeft deze informatie
vrijgegeven en deze informatie over alle ingebouwde functies binnen de Windows omgeving
worden behandeld in vele (meestal Englestalige) uitgaven over Windows en programmeren van
Windows. Daarnaast is er ook via internet deze informatie te vinden, zoals bij PowerBASIC
Inc. Het betreffende bestand is een bijna 9 MB grote ZIP file (circa 30 minuten met ISDN). Het bestand is te vinden op bladzijde: http://www.powerbasic.com/files/pub/mstools/
en heet: win32hlp.zip. De directe link naar het bestand is dus: http://www.powerbasic.com/files/pub/mstools/win32hlp.zip
. |
Hoe kan ik bijvoorbeeld een
printer gebruiken? |
Zoals u hierboven kunt lezen staat
Windows niet toe dat u rechstreeks hardware aanstuurt. Dit moet dus via Windows zelf
gebeuren. Is eigenlijk ook logisch, want stelt u zich voor dat u een 100 bladzijden
rapport aan het afdrukken bent en een eigen gemaakt programma stuurt even TEST naar de
printer. Dit zou dan midden in het 100 bladzijden rapport komen te staan en wie weet WAAR? De aansturing van een printer is niet zo eenvoudig:
PowerBASIC heeft er geen standaard mogelijkheid voor. Toch is het probleem niet zo
problematisch. In de source code forums van PowerBASIC heeft een programmeur zijn werk
hieraan vrijgegeven voor een ieder om het te gebruiken. Deze info is te vinden op:
http://www.powerbasic.com/support/forums/Forum7/HTML/000994.html
om te downloaden.
Meer over PRINTEN in Windows op de speciale PRINT
bladzijde |
Hoe kan ik geluid via Windows
laten klinken? |
Heel eenvoudig: hierover staat bij TIPS & Truuks een korte uitleg en voorbeeld code. Zie
TIPS & TRUUKS over geluid |
Ik wil een stuk source code
van een bladzijde af copiëren en deze daarna in PowerBASIC met PASTE plaatsen |
Door een probleempje in het ontwerp van Internet Explorer (zo is mij
verteld) gaat dit niet zomaar: blijkbaar is de tekst niet voorzien van de juiste
afbreekcharacters na copiëren. Hierdoor ziet PowerBASIC het als één lijn en die is vaak
langer dan 255 karakters, dus PowerBASIC geeft een foutmelding. Er zijn twee eenvoudige
oplossingen te bedenken:
 | U gebruikt Wordpad als tussenstap: PASTE de info in een Wordpad document en selecteer
met CNTRL A vervolgens weer alles. Hierna met CNTRL C opnieuw copiëren en ten slotte in
PowerBASIC opnieuw PASTEN, met bijvoorbeeld CNTRL V. Goed om te weten als het af en toe
voorkomt. |
 | Een tweede mogelijkheid is het programma HTMLPARSE.EXE waarmee u meteen na het copiëren
van de eerste tekst in IE daarna met ALT F10 PowerBASIC PB/DLL opstart en de tekst netjes
in beeld zet. Opslaan en klaar is Klara. |
|
Werkt
PB samen met access / winword / outlook enz.? |
Ja, vanaf PB/WIN versie 7 beschikt PB/WIN over client COM
aansturing. COM is de opvolger van DDE en geeft de mogelijkheden om een
programma vanuit onze applicatie te besturen. Vanaf Office 97 zijn
toepassingen als WinWord en Excel voorzien van een COM interface.
Zo kan men bijvoorbeeld een stuk tekst in laten voegen in Word, het
aantal open documenten tellen, documenten laten opslaan, enz enz enz. U
kunt nu dus eenvoudig een eigen tool-bar maken om Word te besturen zoals u
wilt. Bij Excel kunt u bijvoorbeeld tabellen automatisch invullen, een
taartdiagram laten zien en nog veel meer. Op de
voorbeeldbladzijde vindt u een paar voorbeelden.
|

Uw aanvullingen zijn van harte welkom. Stuurt u uw
bijdrage aan ons, liefst in bovengenoemd format, want dan het zo snel mogelijk worden
opgenomen.
Mail uw bijdragen
PowerBASIC is a registered trademark of PowerBASIC, Inc.
JBasic is a trademark of PowerBASIC, Inc. All contents Copyright (c) 1996-1998,
PowerBASIC, Inc. All rights reserved.
Nederlandse vertaling cq samenstelling: Copyright (C) 1993-2001 Henk Broekhuizen,
Sexbierum (vertaald met toestemming)
|