Vraag : VFP en API

Hallo zijn allen,

I onlangs programmering in VFP begonnen (OOP). Ik ben op het ogenblik geplakt met een paar dingen en zou uw help.

vereisen hoe te om Klassen WMI met VFP te gebruiken? (De Klassen van de Gebeurtenis, de Klassen van de Monitor, enz.) met een example

hoe te om Win32 API met VFP te gebruiken? met een example.

om eerlijk te zijn, heb ik geen idee over Win32 API bij allen. Kon u me aan een alstublieft opnieuw richten verbinding die goede informatie about
Win32 API heeft?

Thanks!
SP


Antwoord : VFP en API

een „Win32 API“ - u schijnt verkeerd te begrijpen dat er vele Win32 APIs zijn. Er zijn slechts één Win32 API. Win32 betekent API alle functies van C van Vensters DLLs, zijn er zeker meer APIs in vensters, b.v. is WMI verschillende API en er zijn veel meer aanbiedingen van dingenvensters als interface om van het gebruik te maken. Cyril richtte u reeds naar verscheidene definities van de termijn API. Win32API is API, maar ondanks de verschillende versies van het wegens de verschillende venstersversies, zijn er slechts één Win32 API.

Win32 API alle aanbiedingen van functiesvensters aan om het even welke programmeertaal noemt in hun toepassingen gebruik te maken van. Door foxpro te gebruiken gebruikt u reeds veel onrechtstreeks van de API functies, b.v. is een foxprovorm een venstersvorm en door os met vele Win API functies gecre�ërd.

Als u houdt van zult u veel van de aanbiedingen van functiesvensters niet nodig hebben en kunt toepassingen met de alleen foxprotaal doen, maar er zeker zijn dingen waard het onderzoeken, geen vraag.

De officiële documentatie is van de schepper van vensters en het is API: Microsoft. Het heeft de Bibliotheek MSDN geroepen. Bijvoorbeeld vindt u beschrijving Microsofts hier van de Functie GetMonitorContrast: http://msdn.microsoft.com/en-us/library/dd692942(VS.85).aspx

In achting van hoe te om te weten welke hMonitor is: In het algemeen maakt de functie deel uit van een familie van functies van een DLLs van vensters. MSDN beschrijft de parameters en vaak beter hun betekenis, constanten en structues geïmpliceerde enz. Bijvoorbeeld wordt de betekenis van hMonitor beschreven door zowel news2news als MSDN:

Handvat aan een fysieke monitor. Om het monitorhandvat te krijgen, roep GetPhysicalMonitorsFromHMONITOR of GetPhysicalMonitorsFromIDirect3DDevice9.

Zo is dit eenvoudig het resultaat van een andere API functie. Er zijn bepaalde noemende overeenkomsten en nomenclaturen, b.v. is een parameterbegin met h typisch een handvat, hwnd is een handvat van een venster. een handvat typisch is een geheelwaarde die zich representatief voor een voorwerp in plaats van een objecten verwijzing naar het objecten adres in geheugen bevindt.

En vanuit het perspectief DELARE is de semantiek van het bevel zoals de foxprohulp zegt:

VERKLAAR [cFunctionType] FunctionName IN LibraryName [ALS AliasName] [cParamType1 [@] ParamName1, cParamType2 [@] ParamName2,…]

Zo bepaalt u het type van het functieresultaat, dan de functienaam binnen DLL en toen de lijst van parameters en hun type, en als zij door waarde of referentiële parameters zijn.

Ja, er vele te leren dingen en termijnen zijn, maar u kunt en zou misschien het moeten tot een minimum beperken van wat u werkelijk extra nodig hebt aan welke foxpro zich aanbiedt. GetMonitorContrast heeft bijvoorbeeld Uitzicht of Server Win2008 als minimumvereiste en alhoewel een VFP9 toepassing met vfp9 runtime op win98 kan lopen, beperken me, xp, het uitzicht en win7, u het op Uitzicht of win7 door van die functie gebruik te maken.

VERKLAAR kan ook functies van ander DLLs niet deel van Vensters, niet deel van Win32 API verklaren. Er zijn vele derdeverkopers van commerciële en open bron de van DLLs. VERKLAAR kan van dergelijke DLLs met cfuncties gebruik maken, in feite is het niet belangrijk de functie wordt geschreven in C/C++, kan het ook Pascal DLL zijn, zolang het een functionele DLL in tegenstelling tot een DLL met de Servers van Com daarin of een .NET Assemblage DLL is.

Ik opende zeker een blik nu van wormen, houd kalm en zie enkel het algemene idee van API externe programma's toe te laten is om van functies gebruik te maken en mogelijkheden van een taal of een product uit te breiden. U kunt maar niet noodzakelijk van dat moeten gebruik maken. VERKLAAR uit foxpro unidirectioneel is om functies van DLLs te omvatten, is CREATEOBJECT (Oleclassname ) een andere manier om van klassen gebruik te maken OLE, de Servers van Com in DLLs of Ocx- dossiers, zijn Er verdere dingen als Webservices en veel meer meer om foxpro uit te breiden.

Gezet in één woord is dit interoperabiliteit. Klaag niet er geen documentatie is of de verwijzing naar het, u ook kon verklaren er geen boek verklarend het leven is. ;)

Tot ziens, Olaf.
Andere oplossingen  
 
programming4us programming4us