` Comment on an Icetips Article
Icetips - Templates, Tools & Utilities for Clarion Developers

Templates, Tools and Utilities
for Clarion Developers

Add a comment to an Icetips Article

Please add your comments to this article. Please note that you must provide both a name and a valid email address in order for us to publish your comment. Comments are moderated and are not visible until they have been approved. Spam is never approved!

Your Name:  
Email:  
Header text/Subject:  

Please enter your comment in the box below:

Back to article list   Search Articles     Add Comment     Printer friendly     Direct link  

Par2: Data DLL without extranious exports
2014-01-04 -- Sandro Gasparetto
 
I think I found a viable solution . 1 - open the Base.app 2 - go to Global Properties --> Actions ----> Global Objects , then check "don't generate globals" 3 - open the next tab : Classes click on the button "ABC Library Files" , ckeck "override defaults" , then "location of ABC library" = none This way the Base.app compiles *without* all the ABC stuff, and there are no globalrequest/globalresponse inside. The resulting .Dll is very tight , but obviously is not possible to use any of the ABC facilities...... This means .... Every procedure inside the Base.app must be of a "source" kind, and if ever there is a need of a Window, this windows has to be coded by hand (in the data section) , and the management must be done via Open(window), display(), ACCEPT , case accepted() ... and so on. All written in source code :-( There is more .... when all these "Base" procedures need to be used, the procedures don't have to be included in the application tree, as usually we do. But they need to be defined "Inside the global map", just as if they were written in another language ! the correct definition (inside the global map) looks like : Module('Base.dll') Assoc(*Cstring),Name('ASSOC@FRsc') BarCode128(string),string,Name('BARCODE128@Fsb') Counter(STRING pCounterName),LONG,Name('COUNTER@Fsb') ErrHandler(,<*file>),Name('ERRHANDLER@FOsBf') MakeFilter(*view,*key,,,,,,),Name('MAKEFILTER@FBiBkOuOuOuOuOuOu') ! and so on .................... end Apart from that, everywhere else the code remains the same I.E. : the "base" procedures are called in the usual way. No changes. And it works !


Today is November 21, 2024, 7:21 am
This article has been viewed 35229 times.



Back to article list   Search Articles   Add Comment   Printer friendly

Login

User Name:

Password: