当前位置: 代码迷 >> VxWorks >> 不同版本Vxworks下,利用配置文件动态调用不同函数,该怎么处理
  详细解决方案

不同版本Vxworks下,利用配置文件动态调用不同函数,该怎么处理

热度:10142   发布时间:2013-02-26 00:00:00.0
不同版本Vxworks下,利用配置文件动态调用不同函数
我开发的一应用程序要在两个不同的vxworks版本下都能运行。

  但是此应用程序在这两个Vxworks下要调用不同的系统函数。

  如何通过应用程序加载配置文件中的选项,让应用程序调用相应系统函数。

  例如

  Vxorks1中有func1(),无func2()
  Vxworks2中有func2(),无func1()

  如何通过读取config.ini中某一个字段,实现Vxworks1中调用的是func1(),Vxworks2中调用的是func2()

  哪位达人指点一下,不胜感激。

------解决方案--------------------------------------------------------
探讨
我开发的一应用程序要在两个不同的vxworks版本下都能运行。

但是此应用程序在这两个Vxworks下要调用不同的系统函数。

如何通过应用程序加载配置文件中的选项,让应用程序调用相应系统函数。

例如

Vxorks1中有func1(),无func2()
Vxworks2中有f……

------解决方案--------------------------------------------------------
试一下弱引用技术,不需要配置文件,直接在代码中搞定。大意如下:

/*弱引用链接时即使找不到也不会报错*/
func1() __attribute((weak));
func2() __attribute((weak));

funcxxx()
{
if(func1) /*有func1*/
{
func1();
}
else if(func2) /*有func2*/
{
func2();
}
......
}
------解决方案--------------------------------------------------------
由于需要在不同的平台下运行,应该也需要进行不同的编译,因此可以使用条件编译来实现这个目的。

#if 平台1
func1();
#else /* 平台2 */
func2();
#endif
  相关解决方案