ExternalLibraryFunction.st
changeset 21055 53363d877a99
parent 20996 3cb1110e6967
child 21088 6f4535127ce6
child 21400 cbcbe62447f8
equal deleted inserted replaced
21054:bb4a42618bb7 21055:53363d877a99
     1 "{ Encoding: utf8 }"
       
     2 
       
     3 "
     1 "
     4  COPYRIGHT (c) 2004 by eXept Software AG
     2  COPYRIGHT (c) 2004 by eXept Software AG
     5 	      All Rights Reserved
     3 	      All Rights Reserved
     6 
     4 
     7  This software is furnished under a license and may be used
     5  This software is furnished under a license and may be used
   202 								[exEnd]
   200 								[exEnd]
   203 
   201 
   204   Synchronous vs. Asynchronous calls:
   202   Synchronous vs. Asynchronous calls:
   205 
   203 
   206     by default, foreign function calls are synchronous, effectively blocking the whole ST/X system
   204     by default, foreign function calls are synchronous, effectively blocking the whole ST/X system
   207     (that is by purpose,´because most C-code is not prepared for being interrupted, and also, normal
   205     (that is by purpose,´because most C-code is not prepared for being interrupted, and also, normal
   208      code is not prepared for a garbage collector to move objects around, while another C thread might
   206      code is not prepared for a garbage collector to move objects around, while another C thread might
   209      access the data...).
   207      access the data...).
   210     Therefore, the following will block all ST/X activity for 10 seconds
   208     Therefore, the following will block all ST/X activity for 10 seconds
   211     (try interacting with the launcher while the Sleep is performing):
   209     (try interacting with the launcher while the Sleep is performing):
   212 
   210 
   293 	DllMapping := Dictionary new.
   291 	DllMapping := Dictionary new.
   294     ].
   292     ].
   295     ^ DllMapping
   293     ^ DllMapping
   296 
   294 
   297     "Created: / 10-04-2012 / 12:21:45 / cg"
   295     "Created: / 10-04-2012 / 12:21:45 / cg"
       
   296 !
       
   297 
       
   298 dllMapping:aDictionary
       
   299     "allows for dll's to be replaced,
       
   300      for example, if you want to use the mozilla sqlite dll
       
   301         C:\Program Files\Mozilla Firefox\mozsqlite3.dll
       
   302      for the sqlite3, execute:
       
   303         ExternalLibraryFunction
       
   304             dllMapping at:'sqlite3'
       
   305             put: 'C:\Program Files\Mozilla Firefox\mozsqlite3.dll'
       
   306      for mingw:
       
   307         ExternalLibraryFunction
       
   308             dllMapping at:'sqlite3'
       
   309             put:'C:\mingw64\opt\bin\libsqlite3-0.dll'
       
   310     "
       
   311 
       
   312     DllMapping := aDictionary
       
   313 
       
   314     "Created: / 26-11-2016 / 04:06:14 / cg"
   298 !
   315 !
   299 
   316 
   300 dllMappingAt:baseLibname put:aNameOrPath
   317 dllMappingAt:baseLibname put:aNameOrPath
   301     "allows for dll's to be replaced,
   318     "allows for dll's to be replaced,
   302      for example, if you want to use the mozilla sqlite dll
   319      for example, if you want to use the mozilla sqlite dll