Data structures would be preferred. However, it was my understanding that data structures are problematic with dlls as both compilers (for the dll and the consumer of the dll) have to use the same data alignment. |
Even more important, each plugin has a different set of parameters, hence each plugin has a different data structure. The consumer of the dll will have to have access to these custom data structures and visualize them as input field to the user. In C# that would be easy using reflection. However, I am not aware of a mechanism to do this in C |
|
|
Interoperability, transparency, extensibility, and storage or transaction economy: these are the important themes in designing file formats and application protocols. Interoperability and transparency demand that we focus such designs on clean data representations, rather than putting convenience of implementation or highest possible performance first. Extensibility also favors textual protocols, since binary ones are often harder to extend or subset cleanly. Transaction economy sometimes pushes in the opposite direction — but we shall see that putting that criterion first is a form of premature optimization that it is often wise to resist. ... ... When you feel the urge to design a complex binary file format, or a complex binary application protocol, it is generally wise to lie down until the feeling passes. ... ... Designing a textual protocol tends to future-proof your system. ... http://www.faqs.org/docs/artu/textualitychapter.html |