No.96501 作者:liufengzhong 邮件:l_fz@sina.com ID:149522 登陆:12次 文章数:695篇 最后登陆IP:183.13.93.245 最后登陆:2015/6/16 17:02:27 注册:2014/7/29 21:51:15 财富:3671 发帖时间:2014/10/1 10:24:07 发贴者IP:14.125.34.43 标题:liufengzhong:在混合接口. C和.XC实现 摘要:No.96501在混合接口. C和.XC实现 你好, 我有一个.xc调用的任务。 c函数从我想沟通使用接口(客户端)。 这样的实现将是什么样子? 你能提供一个例子吗? 谢谢 回答: 如果你想做它从客户端然后最好的办法是编写C原型接口函数的包装器。 例如假设我有: interface my_if { void f(int x); void g(char y); }; 您可以编写以下文件: --my_if_c_api.h--- #include <xccompat.h> void my_if_f(CLIENT_INTERFACE(my_if, i), int x); void my_if_g(CLIENT_INTERFACE(my_if,i), char y); --my_if_c_api.xc-- #include <my_if_c_api.h> void my_if_f(client interface my_if i, int x) { i.f(x); } void my_if_g(client interface my_if i, char y) { i.g(y); } ---- 然后,您可以包括my_if_c_api。 h C程序和使用功能。 目前还没有简单的方法做接口通信的服务器端直接从最简单的事情是顶级的选择在我然后调用C函数 // These are defined in a C file extern() void my_c_f_handler(int x); extern void my_c_g_handler(int y); void my_task(server my_if i) { while (1) { select { case i.f(int x): my_c_f_handler(x); break; case i.g(int y): my_c_g_handler(y); break; } } } 回复: 好吧,让我们一步一步的做。 1。 我有一个工作代码。 我与一个接口。 我有: ——my_interface.h 接口my_interface { int function_a(int x,int y); 空白function_b(int,int,int); }; ——my_client_application.h # include“my_interface.h” 空白my_client_application(客户端接口my_interface我); ——my_client_application.xc # include“my_client_application.h” # include“some_c_code.h” 空白my_client_application(客户端界面my_interface我) { int =我。 function_a(1、2); 我。 function_b(3、4、5); some_c_function(); } 构建和运行的应用程序。 但需要的是电话 i.function_a 从内 some_c_function 离开 i.function_b 里面 my_client_application。 2。 现在我添加一个c包装头就我理解: --my_interface_c_api.h-- #include <xccompat.h> int c_wrapp ......
>>返回讨论的主题
|