Re: dynamic loading of dll's, ccall

From: [at]} <danforth{>
Date: Wed, 11 Feb 2004 13:59:43 -0500

----boundary-LibPST-iamunique-1249260476_-_-
Content-type: text/plain

Fyodor Tkachov wrote:
> Dear Experts,
>

> The encoded document contains two modules:
> 1) an example of creating a dll with a function adhering to ccall conventions.
> 2) an example of a dynamic loading of the dll.
>
> I don't see how one could indicate that the function uses the ccall convention.
> Perhaps, this is not necessary? The example seems to work.
>
> Many thanks in advance for any hint.


Fyodor,
Looking back over the work I did at X-ray Instrumentation Associates I
see that I called a non-CP generated dll. In this case the CP
'interface' file needed to specify the functions in the dll had to be
tagged with the ccall flag.

When a dll is generated by CP and used by CP then the ccall flag is not
needed (your code works from CP whether or not you specify ccall but I
speculate that the parameters are left on the stack when you do. Try a
long loop repeatly calling the procedure (without I/O) to see if you get
a stack overflow).

When the dll is generated by CP but is expected to be used by non-CP
languages that use the ccall convention then within the generating
module one must use the ccall flag.

At least that is my understanding of the situation.

-Doug

--------------------------------------------

To unsubscribe from this mailing list, send a message containing the word "unsubscribe" to:
   blackbox-request{([at]})nowhere.xy

To get a list of valid e-mail commands and instructions on their usage, send a message containing the word "help" to the above address.

Send any problem reports or questions related to this email list to the list owner at
   owner-blackbox{([at]})nowhere.xy

Current posting policy:

a) To post you should use the same address by which you are subscribed to the mailing list. That way, the list server will recognize you as subscriber and forward your posting immediately, without creating any overhead.

b) If, for some reason, you cannot post from the address, by which you are subscribed, your message will be moderated to avoid spam. Please understand that moderation will often cause some delay, in particular over weekends or holydays.



----boundary-LibPST-iamunique-1249260476_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"

e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwIEZ5b2RvciBUa2FjaG92IHdyb3RlOlxwYXINCj4g
RGVhciBFeHBlcnRzLFxwYXINCj4gXHBhcg0KPiBUaGUgZW5jb2RlZCBkb2N1bWVudCBjb250YWlu
cyB0d28gbW9kdWxlczpccGFyDQo+IDEpIGFuIGV4YW1wbGUgb2YgY3JlYXRpbmcgYSBkbGwgd2l0
aCBhIGZ1bmN0aW9uIGFkaGVyaW5nIHRvIGNjYWxsIGNvbnZlbnRpb25zLlxwYXINCj4gMikgYW4g
ZXhhbXBsZSBvZiBhIGR5bmFtaWMgbG9hZGluZyBvZiB0aGUgZGxsLlxwYXINCj4gXHBhcg0KPiBJ
IGRvbid0IHNlZSBob3cgb25lIGNvdWxkIGluZGljYXRlIHRoYXQgdGhlIGZ1bmN0aW9uIHVzZXMg
dGhlIGNjYWxsIGNvbnZlbnRpb24uXHBhcg0KPiBQZXJoYXBzLCB0aGlzIGlzIG5vdCBuZWNlc3Nh
cnk/IFRoZSBleGFtcGxlIHNlZW1zIHRvIHdvcmsuXHBhcg0KPiBccGFyDQo+IE1hbnkgdGhhbmtz
ICBpbiBhZHZhbmNlIGZvciBhbnkgaGludC5ccGFyDQpccGFyDQpccGFyDQpGeW9kb3IsXHBhcg0K
TG9va2luZyBiYWNrIG92ZXIgdGhlIHdvcmsgSSBkaWQgYXQgWC1yYXkgSW5zdHJ1bWVudGF0aW9u
IEFzc29jaWF0ZXMgSSBccGFyDQpzZWUgdGhhdCBJIGNhbGxlZCBhIG5vbi1DUCBnZW5lcmF0ZWQg
ZGxsLiAgSW4gdGhpcyBjYXNlIHRoZSBDUCBccGFyDQonaW50ZXJmYWNlJyBmaWxlIG5lZWRlZCB0
byBzcGVjaWZ5IHRoZSBmdW5jdGlvbnMgaW4gdGhlIGRsbCBoYWQgdG8gYmUgXHBhcg0KdGFnZ2Vk
IHdpdGggdGhlIGNjYWxsIGZsYWcuXHBhcg0KXHBhcg0KV2hlbiBhIGRsbCBpcyBnZW5lcmF0ZWQg
YnkgQ1AgYW5kIHVzZWQgYnkgQ1AgdGhlbiB0aGUgY2NhbGwgZmxhZyBpcyBub3QgXHBhcg0KbmVl
ZGVkICh5b3VyIGNvZGUgd29ya3MgZnJvbSBDUCB3aGV0aGVyIG9yIG5vdCB5b3Ugc3BlY2lmeSBj
Y2FsbCBidXQgSSBccGFyDQpzcGVjdWxhdGUgdGhhdCB0aGUgcGFyYW1ldGVycyBhcmUgbGVmdCBv
biB0aGUgc3RhY2sgd2hlbiB5b3UgZG8uICBUcnkgYSBccGFyDQpsb25nIGxvb3AgcmVwZWF0bHkg
Y2FsbGluZyB0aGUgcHJvY2VkdXJlICh3aXRob3V0IEkvTykgdG8gc2VlIGlmIHlvdSBnZXQgXHBh
cg0KYSBzdGFjayBvdmVyZmxvdykuXHBhcg0KXHBhcg0KV2hlbiB0aGUgZGxsIGlzIGdlbmVyYXRl
ZCBieSBDUCBidXQgaXMgZXhwZWN0ZWQgdG8gYmUgdXNlZCBieSBub24tQ1AgXHBhcg0KbGFuZ3Vh
Z2VzIHRoYXQgdXNlIHRoZSBjY2FsbCBjb252ZW50aW9uIHRoZW4gd2l0aGluIHRoZSBnZW5lcmF0
aW5nIFxwYXINCm1vZHVsZSBvbmUgbXVzdCB1c2UgdGhlIGNjYWxsIGZsYWcuXHBhcg0KXHBhcg0K
QXQgbGVhc3QgdGhhdCBpcyBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBzaXR1YXRpb24uXHBhcg0K
XHBhcg0KLURvdWdccGFyDQpccGFyDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLVxwYXINClxwYXINClRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBtYWlsaW5nIGxp
c3QsIHNlbmQgYSBtZXNzYWdlIGNvbnRhaW5pbmcgdGhlIHdvcmQgInVuc3Vic2NyaWJlIiB0bzpc
cGFyDQogICBibGFja2JveC1yZXF1ZXN0QG9iZXJvbi5jaFxwYXINClxwYXINClRvIGdldCBhIGxp
c3Qgb2YgdmFsaWQgZS1tYWlsIGNvbW1hbmRzIGFuZCBpbnN0cnVjdGlvbnMgb24gdGhlaXIgdXNh
Z2UsIHNlbmQgYSBtZXNzYWdlIGNvbnRhaW5pbmcgdGhlIHdvcmQgImhlbHAiIHRvIHRoZSBhYm92
ZSBhZGRyZXNzLlxwYXINClxwYXINClNlbmQgYW55IHByb2JsZW0gcmVwb3J0cyBvciBxdWVzdGlv
bnMgcmVsYXRlZCB0byB0aGlzIGVtYWlsIGxpc3QgdG8gdGhlIGxpc3Qgb3duZXIgYXRccGFyDQog
ICBvd25lci1ibGFja2JveEBvYmVyb24uY2hccGFyDQpccGFyDQpDdXJyZW50IHBvc3RpbmcgcG9s
aWN5OlxwYXINClxwYXINCmEpIFRvIHBvc3QgeW91IHNob3VsZCB1c2UgdGhlIHNhbWUgYWRkcmVz
cyBieSB3aGljaCB5b3UgYXJlIHN1YnNjcmliZWQgdG8gdGhlIG1haWxpbmcgbGlzdC4gVGhhdCB3
YXksIHRoZSBsaXN0IHNlcnZlciB3aWxsIHJlY29nbml6ZSB5b3UgYXMgc3Vic2NyaWJlciBhbmQg
Zm9yd2FyZCB5b3VyIHBvc3RpbmcgaW1tZWRpYXRlbHksIHdpdGhvdXQgY3JlYXRpbmcgYW55IG92
ZXJoZWFkLlxwYXINClxwYXINCmIpIElmLCBmb3Igc29tZSByZWFzb24sIHlvdSBjYW5ub3QgcG9z
dCBmcm9tIHRoZSBhZGRyZXNzLCBieSB3aGljaCB5b3UgYXJlIHN1YnNjcmliZWQsIHlvdXIgbWVz
c2FnZSB3aWxsIGJlIG1vZGVyYXRlZCB0byBhdm9pZCBzcGFtLiBQbGVhc2UgdW5kZXJzdGFuZCB0
aGF0IG1vZGVyYXRpb24gd2lsbCBvZnRlbiBjYXVzZSBzb21lIGRlbGF5LCBpbiBwYXJ0aWN1bGFy
IG92ZXIgd2Vla2VuZHMgb3IgaG9seWRheXMuXHBhcg0KXHBhcg0KfQ==


----boundary-LibPST-iamunique-1249260476_-_---
Received on Wed Feb 11 2004 - 19:59:43 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:28:54 UTC