Re: dynamic loading of dll's, ccall

From: [at]} <skulski{>
Date: Thu, 12 Feb 2004 02:10:42 -0500 (EST)

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

Doug wrote:

> 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.

For the current laser project I am calling a DLL supplied by National
Instruments. I used StdCall. This DLL was most likely created
with C, because all their examples use C. I also found by trial and
error that the DLL procedures need be called using a "normal" name
(e.g., imgSnap) rather than "decorated" name like _imgSnap{([at]})nowhere.xy
I am not sure how the DLL was created to avoid "decorated" names.

> 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).

I did not specify the [ccall] flag and the program is working.
I tested the result only a few times. I am hoping that this does not
mean that after a hundred calls the stack will overflow and the
machine will crash?

> 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.

I am using StdCall, though the DLL was most likely created with C.

Wojtek


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

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-1303714230_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"

e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwIERvdWcgd3JvdGU6XHBhcg0KXHBhcg0KPiBMb29r
aW5nIGJhY2sgb3ZlciB0aGUgd29yayBJIGRpZCBhdCBYLXJheSBJbnN0cnVtZW50YXRpb24gQXNz
b2NpYXRlcyBJXHBhcg0KPiBzZWUgdGhhdCBJIGNhbGxlZCBhIG5vbi1DUCBnZW5lcmF0ZWQgZGxs
LiAgSW4gdGhpcyBjYXNlIHRoZSBDUFxwYXINCj4gJ2ludGVyZmFjZScgZmlsZSBuZWVkZWQgdG8g
c3BlY2lmeSB0aGUgZnVuY3Rpb25zIGluIHRoZSBkbGwgaGFkIHRvIGJlXHBhcg0KPiB0YWdnZWQg
d2l0aCB0aGUgY2NhbGwgZmxhZy5ccGFyDQpccGFyDQpGb3IgdGhlIGN1cnJlbnQgbGFzZXIgcHJv
amVjdCBJIGFtIGNhbGxpbmcgYSBETEwgc3VwcGxpZWQgYnkgTmF0aW9uYWxccGFyDQpJbnN0cnVt
ZW50cy4gSSB1c2VkIFN0ZENhbGwuIFRoaXMgRExMIHdhcyBtb3N0IGxpa2VseSBjcmVhdGVkXHBh
cg0Kd2l0aCBDLCBiZWNhdXNlIGFsbCB0aGVpciBleGFtcGxlcyB1c2UgQy4gSSBhbHNvIGZvdW5k
IGJ5IHRyaWFsIGFuZFxwYXINCmVycm9yIHRoYXQgdGhlIERMTCBwcm9jZWR1cmVzIG5lZWQgYmUg
Y2FsbGVkIHVzaW5nIGEgIm5vcm1hbCIgbmFtZVxwYXINCihlLmcuLCBpbWdTbmFwKSByYXRoZXIg
dGhhbiAiZGVjb3JhdGVkIiBuYW1lIGxpa2UgX2ltZ1NuYXBAOC5ccGFyDQpJIGFtIG5vdCBzdXJl
IGhvdyB0aGUgRExMIHdhcyBjcmVhdGVkIHRvIGF2b2lkICJkZWNvcmF0ZWQiIG5hbWVzLlxwYXIN
ClxwYXINCj4gV2hlbiBhIGRsbCBpcyBnZW5lcmF0ZWQgYnkgQ1AgYW5kIHVzZWQgYnkgQ1AgdGhl
biB0aGUgY2NhbGwgZmxhZyBpcyBub3RccGFyDQo+IG5lZWRlZCAoeW91ciBjb2RlIHdvcmtzIGZy
b20gQ1Agd2hldGhlciBvciBub3QgeW91IHNwZWNpZnkgY2NhbGwgYnV0IElccGFyDQo+IHNwZWN1
bGF0ZSB0aGF0IHRoZSBwYXJhbWV0ZXJzIGFyZSBsZWZ0IG9uIHRoZSBzdGFjayB3aGVuIHlvdSBk
by4gIFRyeSBhXHBhcg0KPiBsb25nIGxvb3AgcmVwZWF0bHkgY2FsbGluZyB0aGUgcHJvY2VkdXJl
ICh3aXRob3V0IEkvTykgdG8gc2VlIGlmIHlvdSBnZXRccGFyDQo+IGEgc3RhY2sgb3ZlcmZsb3cp
LlxwYXINClxwYXINCkkgZGlkIG5vdCBzcGVjaWZ5IHRoZSBbY2NhbGxdIGZsYWcgYW5kIHRoZSBw
cm9ncmFtIGlzIHdvcmtpbmcuXHBhcg0KSSB0ZXN0ZWQgdGhlIHJlc3VsdCBvbmx5IGEgZmV3IHRp
bWVzLiBJIGFtIGhvcGluZyB0aGF0IHRoaXMgZG9lcyBub3RccGFyDQptZWFuIHRoYXQgYWZ0ZXIg
YSBodW5kcmVkIGNhbGxzIHRoZSBzdGFjayB3aWxsIG92ZXJmbG93IGFuZCB0aGVccGFyDQptYWNo
aW5lIHdpbGwgY3Jhc2g/XHBhcg0KXHBhcg0KPiBXaGVuIHRoZSBkbGwgaXMgZ2VuZXJhdGVkIGJ5
IENQIGJ1dCBpcyBleHBlY3RlZCB0byBiZSB1c2VkIGJ5IG5vbi1DUFxwYXINCj4gbGFuZ3VhZ2Vz
IHRoYXQgdXNlIHRoZSBjY2FsbCBjb252ZW50aW9uIHRoZW4gd2l0aGluIHRoZSBnZW5lcmF0aW5n
XHBhcg0KPiBtb2R1bGUgb25lIG11c3QgdXNlIHRoZSBjY2FsbCBmbGFnLlxwYXINClxwYXINCkkg
YW0gdXNpbmcgU3RkQ2FsbCwgdGhvdWdoIHRoZSBETEwgd2FzIG1vc3QgbGlrZWx5IGNyZWF0ZWQg
d2l0aCBDLlxwYXINClxwYXINCldvanRla1xwYXINClxwYXINClxwYXINCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHBhcg0KXHBhcg0KVG8gdW5zdWJzY3JpYmUg
ZnJvbSB0aGlzIG1haWxpbmcgbGlzdCwgc2VuZCBhIG1lc3NhZ2UgY29udGFpbmluZyB0aGUgd29y
ZCAidW5zdWJzY3JpYmUiIHRvOlxwYXINCiAgIGJsYWNrYm94LXJlcXVlc3RAb2Jlcm9uLmNoXHBh
cg0KXHBhcg0KVG8gZ2V0IGEgbGlzdCBvZiB2YWxpZCBlLW1haWwgY29tbWFuZHMgYW5kIGluc3Ry
dWN0aW9ucyBvbiB0aGVpciB1c2FnZSwgc2VuZCBhIG1lc3NhZ2UgY29udGFpbmluZyB0aGUgd29y
ZCAiaGVscCIgdG8gdGhlIGFib3ZlIGFkZHJlc3MuXHBhcg0KXHBhcg0KU2VuZCBhbnkgcHJvYmxl
bSByZXBvcnRzIG9yIHF1ZXN0aW9ucyByZWxhdGVkIHRvIHRoaXMgZW1haWwgbGlzdCB0byB0aGUg
bGlzdCBvd25lciBhdFxwYXINCiAgIG93bmVyLWJsYWNrYm94QG9iZXJvbi5jaFxwYXINClxwYXIN
CkN1cnJlbnQgcG9zdGluZyBwb2xpY3k6XHBhcg0KXHBhcg0KYSkgVG8gcG9zdCB5b3Ugc2hvdWxk
IHVzZSB0aGUgc2FtZSBhZGRyZXNzIGJ5IHdoaWNoIHlvdSBhcmUgc3Vic2NyaWJlZCB0byB0aGUg
bWFpbGluZyBsaXN0LiBUaGF0IHdheSwgdGhlIGxpc3Qgc2VydmVyIHdpbGwgcmVjb2duaXplIHlv
dSBhcyBzdWJzY3JpYmVyIGFuZCBmb3J3YXJkIHlvdXIgcG9zdGluZyBpbW1lZGlhdGVseSwgd2l0
aG91dCBjcmVhdGluZyBhbnkgb3ZlcmhlYWQuXHBhcg0KXHBhcg0KYikgSWYsIGZvciBzb21lIHJl
YXNvbiwgeW91IGNhbm5vdCBwb3N0IGZyb20gdGhlIGFkZHJlc3MsIGJ5IHdoaWNoIHlvdSBhcmUg
c3Vic2NyaWJlZCwgeW91ciBtZXNzYWdlIHdpbGwgYmUgbW9kZXJhdGVkIHRvIGF2b2lkIHNwYW0u
IFBsZWFzZSB1bmRlcnN0YW5kIHRoYXQgbW9kZXJhdGlvbiB3aWxsIG9mdGVuIGNhdXNlIHNvbWUg
ZGVsYXksIGluIHBhcnRpY3VsYXIgb3ZlciB3ZWVrZW5kcyBvciBob2x5ZGF5fX0AICAgICAgICAg
IGJ5


----boundary-LibPST-iamunique-1303714230_-_---
Received on Thu Feb 12 2004 - 08:10:42 UTC

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