Having recently got XOJO, to allow for a couple of programs that I have built for Windows to work also on OS X, I seem to be missing something re. Declaring Funcions whose functions would be Global to the rest of the application.
(Two ?'s)
#One:
There are some pointers that I have read on the forum and have done the following:
1> Selected My DLL/Dylib’s and placed them in Copyfile1 & 2, depending on OS build.
2> Created a Module1 and inserted this in a ‘loaddll’ Method:
[code] #if TargetWin32 // In case we try that on a Mac or a Linux Box…
CONST MyDLL=“sqlcipher.dll”
#endif
#if TargetMacOS
Const MyDLL = “@executable_path/…/libsqlcipher.0.dylib”
#endif
msgbox (mydll)
Soft Declare Function sqlite3_sourceid lib MyDLL Alias “sqlite3_sourceid” ( ) As CString[/code]
3> Set the ‘loaddll’ module to be ‘External’; which AFAIK should expose the Declared Functions?
4> Set 2 buttons on the only Window
5> Button 1 ‘Action’ is loaddll
6> Button 2 ‘Action’ is MsgBox(sqlite3_sourceid())
…this results in an error: Window1.Pushbutton2.Action…“sqlite3_sourceid” This item does no exist
Am I incorrect in taking it that the Declares in the ‘External’ module should be exposed as Global? Obviously I have incorrectly coded this.
#Two:
By REMming out the sqlite3_sourceid error, I compile and pass onto an OS X box and see:
"@executable_path/../libsqlcipher.0.dylib"
in the MsgBox on the MAC
…does “@executable_path/…” work or have I missed something else, does not appear to work on Windows either?
Thanks.