Jeg har aldrig rodet med DLL før, men har nu fået en aktuelt problem.
Jeg har fået en excel fil, som bruger den DLL, jeg også har importeret
i D7.
I Excel ser koden ud som følgende:
Public Sub StartComm()
On Error Resume Next
' Zuweisung der einzelnen Objekte
Set oTask = New RainbowState
Set oSapro = New RainbowSrv
Set oLoad = New RainbowLoader
Set oOBJH = New RainbowObjHandler
'Set oServerIP = New RAINBOWIPLib.RainbowSrv
Dim InterfaceTyp As Variant
InterfaceTyp = Interface
'Definierung der Schnittstelle
'oSapro.Conf.SetInterfaceType InterfaceTyp ' Interface
If InterfaceTyp = "RainbowSerSrv.CommModule01" Or InterfaceTyp =
"RainbowSerSrv.CommModule02" Then
oSapro.Conf.SetInterfaceType InterfaceTyp
oSapro.Conf.SetInterfacePar "57600,8,2,N,1" 'Physikalische
eigenschaften
oSapro.Conf.SetTargetType ControllerType
oTask.SetInterface oSapro
oLoad.SetInterface oSapro
oOBJH.SetInterface oSapro
'oServerIP.SetInterface oSapro
End If
----------------------------------------
Det er RainbowSrv jeg skal have fat i, og starte med at sætte
kommunikationen op.
Linien se sådan ud i excel :
oSapro.Conf.SetInterfaceType InterfaceTyp
I delphi placerer jeg den "komponent" jeg har importeret, og skriver
RainbowSrv1.conf.
Efter dette kan jeg ikke få "SetInterface" funktionen frem, og når jeg
skriver det manuelt giver Delphi fejl ved compilering.
Når jeg åbner den TLB fil, jeg har fået lavet efter import, ser jeg
bla.
følgende :
// *********************************************************************//
// Interface: ISaproSerSrv
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {EA302EDD-8768-11D2-8E33-006008727C0A}
// *********************************************************************//
ISaproSerSrv = interface(IDispatch)
['{EA302EDD-8768-11D2-8E33-006008727C0A}']
procedure GetVersion(var Version: OleVariant); safecall;
procedure GetMajorVersion(var Number: OleVariant); safecall;
procedure GetMinorVersion(var Number: OleVariant); safecall;
function Get_Conf: IDispatch; safecall;
property Conf: IDispatch read Get_Conf;
end;
~En masse andet kode~
// *********************************************************************//
// Interface: ISaproConf
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {3155D9F0-8463-11D2-83A2-00600872723B}
// *********************************************************************//
ISaproConf = interface(IDispatch)
['{3155D9F0-8463-11D2-83A2-00600872723B}']
procedure SetInterfaceType(const InterfaceType: WideString);
safecall;
procedure SetInterfacePar(const InterfacePar: WideString);
safecall;
procedure GetInterfaceType(var Value: OleVariant); safecall;
procedure GetInterfacePar(var Value: OleVariant); safecall;
procedure SetTargetType(Value: Integer); safecall;
procedure GetTargetType(var Value: OleVariant); safecall;
end;
// *********************************************************************//
// DispIntf: ISaproConfDisp
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {3155D9F0-8463-11D2-83A2-00600872723B}
// *********************************************************************//
ISaproConfDisp = dispinterface
['{3155D9F0-8463-11D2-83A2-00600872723B}']
procedure SetInterfaceType(const InterfaceType: WideString);
dispid 1;
procedure SetInterfacePar(const InterfacePar: WideString); dispid
2;
procedure GetInterfaceType(var Value: OleVariant); dispid 3;
procedure GetInterfacePar(var Value: OleVariant); dispid 4;
procedure SetTargetType(Value: Integer); dispid 5;
procedure GetTargetType(var Value: OleVariant); dispid 6;
end;
Nogen genier der kan gennemskue hvor jeg går galt i byen ?
Med venlig hilsen
Ulrik
|