Home PB/WIN7 en PB/CC3 PB Versies Henk's Bytes Tips en Truuks Voorbeelden Les in PBDLL Gazette NL FAQ PowerBASIC Extra Tools Diversen Inhoudsopgave Zoeken Links

Frequently Asked Questions = Veel Gestelde Vragen over

pbinc.gif (8731 bytes)

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
PBCC20tweemaal.gif (4505 bytes)

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
PBCC20tweemaal.gif (4505 bytes)

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.

 

Kan ik met PB/DLL 6.0 zelfstandig draaiende programma's maken die op pc's van derden draaien?
Ja, zie onderstaande voorbeelden (source plus uitvoerbare Windows programma's) van een paar voorbeelden. Dit zijn programma's die alleen met PB/DLL 6.0 zijn gemaakt.
Download/cool.bas
Download/cool.exe
Een leuke demonstratie van figuren in grafische mode, waarbij de systeemload van de CPU beneden de 1% blijft
Download/kool.bas
Download/kool.exe
Tweede voorbeeld met iets andere patronen
Download/hello.bas
Download/hello.exe
Download/hello.ico
Het bekende Visual Basic voorbeeld: een schermpje met de tekst 'Hello World'. De PowerBASIC versie is slechts 6 kB!!!
Download/pbnote.bas
Download/pbnote.exe
Download/pbnote.ico
Een eenvoudige Windows editor, vergelijkbaar met Notepad, slechts 33kB groot.

 

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
PBDLLupgradefout.gif (13775 bytes)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.

 

Kan ik het eerst uitproberen voordat ik het koop ?
Niet echt: er zijn van de courante compilers geen demo versies, in het verleden zijn er wel demoversies geweest van oudere versies. Wel is van een heel oude versie van PBforDOS nog een shareware versie in omloop met de naam FreeBASIC.

MAAR PowerBASIC hanteert de niet-goed-geld-terug 30 dagen garantie op zijn producten, omdat men vertrouwen heeft in die producten. Let wel op de volgende punten:

Dit geldt alleen voor de producten die via de post worden verzonden, dus niet voor elektronische aflevering.
Post per surface-mail doet er al snel 3 tot 6 weken over, dus kies daarom voor luchtpost als je misschien gebruik wilt maken van deze garantie. Anders is de termijn voorbij voordat je het product hebt.
Luchtpost is relatief prijzig, want vaak wil je de boeken er ook bij en die wegen er wel in. Bedenk trouwens dat je de boeken van de meeste producten niet echt nodig hebt, want in de loop van de jaren zijn de HELP files erg uitgebreid geworden.
Probeer desnoods met Sales iets af te spreken over wanneer de termijn ingaat. Men is heus wel welwillend.

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)

Bezoek het PB forum in het Nederlands en/of teken mijn gastenboek.

Datum laatste aanpassing:
29 december 2003 03:42:12

Email mij voor reacties,
aanvullingen en correcties