09. juni 2004 - 21:10Der er
15 kommentarer og 1 løsning
Ovrsættelse af VB program
Nogen der kan oversætte nedstående program til Delphi. RainbowSrv, RainbowState, RainbowLoader og RainbowObjHandler kommer alle fra dll, som jeg kan importere i Delphi
Public oSapro As RainbowSrv 'Allgemeine Rainbow Bibliothek Public oTask As RainbowState 'Zustand des Controllers Public oLoad As RainbowLoader 'Download Bibliothek Public oOBJH As RainbowObjHandler 'Rainbow Objecthandler
Public Sub UpdateValues()
Set oTask = New RainbowState Set oSapro = New RainbowSrv Set oLoad = New RainbowLoader Set oOBJH = New RainbowObjHandler
Hej Det er til kommunikatioin med en Siemens industri processor (Saphir). Ja - jeg ved godt der mangler dokumentation på COM / DLL objekter. Jeg har lidt dokumentation på det, men det er meget sparsomt, umiddelbart er det "bare" nogle VB eksempler.
Jeg har så ud fra disse eksempler, lavet overstående - som fungerer.
Næh - stort set er det bare et eksempel, der ligner det lille program jeg har lavet. Jeg har så bare ændret nogle adresser osv.
Jeg har nu bedt leverandøren komme med noget bedre dokumentation - det er vist godt nok på tysk - hehe.
Noget andet er. Når jeg "importerer" funktionerne i Delphi, så får jeg jo lavet nogle filer (_TLB), hvor jeg kan se funktioner, interfaces osv. Kan i se noget ud af disse filer ?
Jeg har aldrig rodet med COM / DLL i Delphi - som i nok kan se ;)
Så folkens - flere oplysninger er fremskaffet (Det tog lidt tid) Venligst tag et kig på det, og hjækp mig, jeg vil meget gerne i gang med det her, også for at lære nye områder.
Ja, jeg har prøvet at kigge i TLB filerne - det hjælper mig bare ikke så meget - jeg kan ikke rigtig komme i gang med at erklære min objecter / interfaces - nok mest fordi jeg ingen erfaring har i COM programmering.
Noget af det første jeg skal gøre må være at sætte Commmodule, interface osv. ligesom jeg gør i VB.
Jeg har lavet et "dump" af filen RAINBOWSERLib_TLB
Den er jeg helt med på,men ........ Når jeg sætter oSapro.Conf. Så får jeg ikke muligheden SetinterfaceType, SetInterfacePar, SetTargetType ? Skal de tilgås på en anden måde ?
det er fordi oSapro.Conf har type IDispatch, så skal du bruge QueryInterface der cirka svarer til et typecast - husk at objekter kan implementere flere interfaces.
var oSapro : ISaproSerSrv; conf : ISaproConf; ...
oSapro := CoRainbowSrv.Create; if FAILED(oSapro.QueryInterface(IID_ISaproConf, conf)) then //handle error
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.