我在XP系统上做的一个程序需要调用MATLAB文件封装的MFC DLL。程序使用正常。当移到PE系统上后程序就调用失败了。报错:“the exception illegal instruction
an attempt was made to execute an illegal instruction.
(0000000x)occurenal in the application an loction(000001ac)”因为这个系统是装在工控机上的资源有限所以裁减的非常小,但是以前也有运行程序调用其他DLL文件都可以,这次这个MATLAB做的DLL就有问题了。请高手指点。

解决方案 »

  1.   

    估计PE系统上不支持Matlab...缺少matlab的支持
      

  2.   

    PE 是一个简化的 XP,估计有些功能不支持
      

  3.   


    很可能是PE不支持,也说不准是你工控机上的系统裁的过多,建议用虚拟机弄个完整版的PE排查一下。
      

  4.   


    我也想过这种方法,但是能够找到PE中相对XP缺的文件么?
      

  5.   


    我有添加MATLAB独立运行的库。也就是说我在其他没有装MATLAB的XP系统上也是可以运行那些程序的。
      

  6.   

    我通过在程序里弹出对话框发现是MATLAB在为变量申请空间的时候系统报错的,难道PE对使用内存有特殊规定?
      

  7.   

    PE中少了很多有关界面的和GDI+的组件,估计MatLab的某些绘图函数要调用它们。在正常xp下面运行这个程序,查一下这个程序运行中都调用了哪些DLL,再到PE上面查查少哪些。找到后到PE下面安装并注册。----应该是一个浩大的工程。
      

  8.   


    我的程序没有绘图要求。现在在用DEPENDENCY WALKER,一一对应找出来并装上了,还是。会不会是工控机内存太小了,因为是在申请变量时出的错误。
      

  9.   

    DEPENDENCY WALKER只能看静态的库依赖。你要使用程序运行起来,用spy++,或icesword,PeID,LordPe等看运行时里面都用了哪些模块(有些是com模块),将这些模块一一记录,在PE上准备好(如果是com,还得注册一下才能用),然后再试。
      

  10.   

    反过来想,既然在其他没有安装MATLAB的XP系统上可以运行,那个PE系统也可以调用普通的MFC DLL文件,那么可不可以说XP有专门支持调用类似MATLAB DLL的控件呢?