D3 C Functions – Part 1: Confusing docs?
A recent forum posting said the D3 Reference Manual is "confused" about which %functions are for Unix and which are for Windows. I have a lot of comments on this topic but with just a couple minor exceptions I disagree with the statement that the doc is really "confused" anymore.
If you don’t know what these functions are, then check the Ref. The %functions allow us to create socket clients and servers, read and write from the host OS in a manner which doesn’t consume frames like standard file I/O, and we can get process and server info from the OS. The functions are really for developers who want to interact with the host OS and local network. While the functions are not syntactically portable to other MV platforms, some of the other MV platforms support similar functionality, so the code may not be entirely non-portable.
Custom C functions
The section on creating custom C %functions is all Unix. I verified a while back that the section is technically accurate. It would certainly be confusing to someone who doesn’t use C, but then again, if you aren’t using C, any documentation on C would probably be confusing.
I wish I could find a document that explains completely and accurately how to link a custom DLL with the D3NT monitor. I used to have a document that was written in the mid-90’s but these notes were scratched out by an engineer, were very incomplete, and certainly out of date now. Does anyone have something like this?
There are NT-specific verbs like nt_cload, nt_dllinfo, etc, but there is no spec on the interface to which a DLL must conform in order to be loaded. This is Reference material with no Documentation to describe what the heck they’re referring to.
Raining Data hasn’t found it important enough to publish details about linking with external modules, in part because the number of people who have the skill or desire to do such a thing is tiny. As with many undocumented or under-documented D3 features, I would maintain that people aren’t using the D3 feature because there is a lack of documentation – Catch 22?