摘要:
贴上JNA—JNI终结者、深入解析JNA—模拟C语言结构体两篇文章的完整源代码C语言源代码:头文件#define MYLIBAPIextern"C"__declspec(dllexport )MYLIBAPIvoid say(wchar_t* pValue);struct UserStruct{long id;wchar_t*name;int age;};MYLIBAPIvoid sayUser(UserStruct* pUserStruct);struct CompanyStruct{long id;wchar_t*name;//UserStruct* users[100 阅读全文
摘要:
深入解析JNA—模拟C语言结构体前言前几天写《JNA--JNI终结者》一文介绍JNA框架。写完之后才发现,忘了写比较有难度的C语言Struct的模拟了。今天就补上这篇文章,介绍Struct。不写怎样模拟C语言结构体,就不能算是真正解决了调用动态链接库的问题。C语言的结构体用得实在是太广泛了。首先说明一点,本文中大量把模拟Struct的类写作为接口的内部类。这不是JNA规定的,而是一个编程习惯。因为这些结构体(Structure类的子类),一般没有重用的价值,因此写成内部类比较方便。自然,你也可以把结构体写成一般的类。例3使用JNA调用使用Struct的C函数C语言开发继续使用例2中的那个VSC 阅读全文