New topic: RealStudio 2012 Eval. - Access COM Objects in Delphi-DLL
<http://forums.realsoftware.com/viewtopic.php?t=47702> Page 1 of 1 [ 5 posts ] Previous topic | Next topic Author Message JSt Post subject: RealStudio 2012 Eval. - Access COM Objects in Delphi-DLLPosted: Thu Apr 25, 2013 12:41 pm Joined: Thu Apr 25, 2013 11:15 am Posts: 3 Hi to all, i am evaluating RealStudio. One of my topics is the question if RealStudio can access COM-Objects in a DLL written with Delphi. Can someone provide me this information, because i didn't find answers or working examples with RS2012. Thanks in advance Jürgen Top simulanics Post subject: Re: RealStudio 2012 Eval. - Access COM Objects in Delphi-DLPosted: Sun Apr 28, 2013 12:21 am Joined: Sun Aug 12, 2007 10:10 am Posts: 1067 Location: Boiling Springs, SC Do you have a public dll that you could post for demo creation purposes? I prefer to use windows LoadLibrary Apis to load library functions or declare the functions as you would any other API..making reference to the dll file. If you can post a dll, it would be easier to show by providing code than explain in depth _________________ Matthew A. Combatti Real Studio 2012 r1.2 Visit Xojo Developer's Spot! Systems I Use: Windows XP/Windows Vista/Windows Server 2008 r2/Windows 7/Windows 8 Mac OSX 10.5/Mac OSX 10.6/Mac OSX Server/Ubuntu/Debian/Suse/Red Hat/ Windows Server 2011/CentOS 5.4 /ReactOS/SimOS ~All Xojo Compatible~ Top JSt Post subject: Re: RealStudio 2012 Eval. - Access COM Objects in Delphi-DLPosted: Sun Apr 28, 2013 6:16 am Joined: Thu Apr 25, 2013 11:15 am Posts: 3 Hi Metthew, it is a DLL to access the Bootloader of a microcontroller. Here is the Code of the Delphi Interface Unit: The main-object is the IAVRootloader which uses the other objects. Is there a way to attach the DLL-file to this thread? unit AVRootIntf; interface uses Windows, Classes; const // IApplication.Output() Code ocInfo = $10000000; ocError = $11000000; ocOthers = $12000000; // RetCode Flags msCrypt = $01; msCryptFlash = $02; msCryptEeprom = $04; msVersioning = $08; // Return Codes of AVR Bootloader Software SUCCESS = $30; ERRORVERIFY = $C0; ERRORCOMMAND = $C1; ERRORCRC = $C2; ERRORBOUNDS = $C3; ERRORCRYPT = $C4; ERRORPROG = $C5; ERRORVERSION = $C6; ERRORUNKNOWN = $CF; RETMASK = $F0; // IDevice.Support Flags sfCrypt = $0001; // Cryptography supported sfCryptFlash = $0002; // FLASH Write must be encrypted, unencrypted FLASH write not supported sfCryptEeprom = $0004; // EEPROM Write must be encrypted, unencrypted EEPROM write not supported sfVersioning = $0008; // Versioning supported sfReadEeprom = $0100; // command EEPROM Read supported, examined at runtime sfWriteEeprom = $0200; // command EEPROM Write supported, examined at runtime sfReadRam = $0400; // command RAM Read supported, examined at runtime sfVerifyFlash = $0800; // command Verify FLASH supported, examined at runtime type // RS232 encapsulation of windows COM port TCRCFlag = (crcReset, crcSend); TCRCFlags = set of TCRCFlag; ICOM = interface procedure Flush; stdcall; procedure Purge; stdcall; procedure SetTimeout(Value: Cardinal; const ProcName: WideString = ''); stdcall; procedure SetParams(Baudrate: Cardinal; Parity: Byte = NOPARITY; Databits: Byte = 8; Stopbits: Byte = ONESTOPBIT; const ProcName: WideString = ''); stdcall; procedure SetEchoMode(Value: Bool); stdcall; function EchoMode: Bool; stdcall; procedure SetDTR(Value: Bool); stdcall; procedure SetRTS(Value: Bool); stdcall; procedure WriteData(Buffer: Pointer; Size: Integer; Flags: TCRCFlags = []; const ProcName: WideString = ''); stdcall; procedure WriteByte(Value: Byte; Flags: TCRCFlags = []; const ProcName: WideString = ''); stdcall; procedure WriteChar(Value: Char; Flags: TCRCFlags = []; const ProcName: WideString = ''); stdcall; procedure WriteWord(Value: Word; Flags: TCRCFlags = []; const ProcName: WideString = ''); stdcall; procedure WriteLong(Value: Cardinal; Flags: TCRCFlags = []; const ProcName: WideString = ''); stdcall; procedure WriteCRC(const ProcName: WideString = ''); stdcall; procedure ResetCRC; stdcall; procedure ReadData(Buffer: Pointer; Size: Integer; Flags: TCRCFlags = []; const ProcName: WideString = ''); stdcall; function ReadByte(Flags: TCRCFlags = []; const ProcName: WideString = ''): Byte; stdcall; function ReadChar(Flags: TCRCFlags = []; const ProcName: WideString = ''): Char; stdcall; function ReadWord(Flags: TCRCFlags = []; const ProcName: WideString = ''): Word; stdcall; function ReadLong(Flags: TCRCFlags = []; const ProcName: WideString = ''): Cardinal; stdcall; function ReadCRC(const ProcName: WideString = ''): Bool; stdcall; end; // Timeout Record for IApplication TTimeouts = packed record Baudrate: Integer; Connect: Integer; Base: Integer; Erase: Integer; Flash: Integer; Eeprom: Integer; Buffer: Integer; AppCmd: Integer; KeepAlive: Integer; RTSPulse: Integer; RTSInterval: Integer; ConnectTrials: Integer; MaxPacketSize: Integer; Options: Integer; end; // Application Callback Interface, must be provided to OpenAVRootloader() IApplication = interface ['{62DEB67D-8AB2-476E-9CB6-F582A508B1F7}'] function ProcessMessages: Bool; stdcall; procedure Changed; stdcall; procedure Output(const Msg: WideString; Code: Integer); stdcall; function GetFLASHFileName: WideString; stdcall; function GetEEPROMFileName: WideString; stdcall; function GetACYFileName: WideString; stdcall; function GetPassword: WideString; stdcall; function GetBootSign: WideString; stdcall; function GetTimeouts: TTimeouts; stdcall; function GetAppCmd: WideString; stdcall; function GetAppCmdResponse: WideString; stdcall; function GetAppVersion(Masked: Bool = False): Integer; stdcall; function GetACYInfo: WideString; stdcall; function OpenCommunication(Index: Integer): ICOM; stdcall; end; // individual Commands to send to AVR Bootloader software, part of IAVRootloader ICommandSet = interface ['{E9C64A3F-306C-4694-B250-FC57D2CB2DEB}'] function SetAddr(Address: Integer): Bool; stdcall; function SetBuffer(Buffer: Pointer; Size: Integer; Code: Byte = 0): Bool; stdcall; function Run(Code: Byte = 1): Bool; stdcall; function EraseFlash(Pages: Byte = 1): Bool; stdcall; function VerifyFlash(Pages: Byte = 1): Bool; stdcall; function WriteFlash(Pages: Byte = 1): Bool; stdcall; function WriteEeprom(Size: Integer; Pages: Byte = 1): Bool; stdcall; function ReadEeprom(Buffer: Pointer; Size: Integer; Address: Integer = 0): Bool; stdcall; function ReadRam(Buffer: Pointer; Size: Integer; Address: Integer = 0): Bool; stdcall; end; // connected Device Information, part of IAVRootloader IDevice = interface ['{9EC8A92B-F6BB-47F3-A9C9-DF8F4F481F49}'] function Signature: Integer; stdcall; function Name: WideString; stdcall; function Info: WideString; stdcall; function FlashSize: Integer; stdcall; function AppFlashSize: Integer; stdcall; function AppVersion: Integer; stdcall; function AppVersionString: WideString; stdcall; function EepromSize: Integer; stdcall; function RamSize: Integer; stdcall; function RamStartAddress: Integer; stdcall; function PageSize: Integer; stdcall; function BufferSize: Integer; stdcall; function Version: Integer; stdcall; function UseBootSection: Bool; stdcall; function RetCode: Byte; stdcall; function Support: Integer; stdcall; function XMLFileName: WideString; stdcall; end; TMode = (moDisconnected, moConnecting, moConnected, moWorking, moTimer, moAbort); // Bootloader Interface IAVRootloader = interface ['{3A2E99C2-CE9E-407B-8943-A6D5EB1F6B7A}'] function Mode: TMode; stdcall; function DoConnect(Working: Bool = False): Bool; stdcall; procedure DoDisconnect; stdcall; procedure DoAbort; stdcall; function DoProgram(EraseFlash: Bool; VerifyFlash: Bool): Bool; stdcall; function DoCompile(EraseFlash: Bool; VerifyFlash: Bool): Bool; stdcall; function DoVerifyFlash: Bool; stdcall; function DoEraseFlash: Bool; stdcall; function DoEraseEeprom: Bool; stdcall; function COM: ICOM; stdcall; function Device: IDevice; stdcall; function Command: ICommandSet; stdcall; end; function OpenCOM(const Port: WideString; const Application: IApplication): ICOM; stdcall; external 'AVRootloader.dll'; function OpenAVRootloader(const Application: IApplication): IAVRootloader; stdcall; external 'AVRootloader.dll'; implementation end. Top simulanics Post subject: Re: RealStudio 2012 Eval. - Access COM Objects in Delphi-DLPosted: Sun Apr 28, 2013 2:03 pm Joined: Sun Aug 12, 2007 10:10 am Posts: 1067 Location: Boiling Springs, SC You an use a free file host like fileden or email the dll to [email protected]. _________________ Matthew A. Combatti Real Studio 2012 r1.2 Visit Xojo Developer's Spot! Systems I Use: Windows XP/Windows Vista/Windows Server 2008 r2/Windows 7/Windows 8 Mac OSX 10.5/Mac OSX 10.6/Mac OSX Server/Ubuntu/Debian/Suse/Red Hat/ Windows Server 2011/CentOS 5.4 /ReactOS/SimOS ~All Xojo Compatible~ Top JSt Post subject: Re: RealStudio 2012 Eval. - Access COM Objects in Delphi-DLPosted: Sun Apr 28, 2013 2:13 pm Joined: Thu Apr 25, 2013 11:15 am Posts: 3 Hi Metthew, i sent you a mail. Best regards Jürgen Top Display posts from previous: All posts1 day7 days2 weeks1 month3 months6 months1 year Sort by AuthorPost timeSubject AscendingDescending Page 1 of 1 [ 5 posts ]
-- Over 1500 classes with 29000 functions in one REALbasic plug-in collection. The Monkeybread Software Realbasic Plugin v9.3. http://www.monkeybreadsoftware.de/realbasic/plugins.shtml [email protected]
