none
关于c#调用matlab 制作的COM的问题 RRS feed

  • 问题

  • 各位前辈你们好:
           小弟这有个问题,最近做论文要用到c#调用matlab制作的COM,matlab制作COM没什么问题,但是一用C#调用就会报错,内容是:
    runtime error!
    an application has made an attempt to load the c runtime library incorrectly.
    please contact the application's support team for more information

         我看过一篇解决此问题的方法是这样子的 :
    出现这个问题的原因:缺少了manifest,程序因此无法正常载入C runtime library。

    解决办法
    解决方法有两个:
    1. 将编译得到的 $(APP).exe.manifest 一并打包,即和应用程序放在同一个文件夹下;
    2. 将manifest文件直接嵌入到可执行文件。
    嵌入到可执行文件的方法是,需要在生成exe之后在执行下面的命令:

    mt.exe –manifest $(APP).exe.manifest -outputresource:$(APP).exe;1

    编译DLL的话,有一点点小区别的。

    mt.exe –manifest $(LIB).dll.manifest -outputresource:$(LIB).dll;2

    但是我还是不大明白是什么意思,到底怎么安装manifest文件,是在c#中安装,还是在用matlab制作COM时添加,该怎样添加呢?

     请问各位前辈有知道此问题的吗?不胜感激
    2010年5月17日 7:45

答案

  • 这个错误信息是很通用的信息,只是说明产品里有bug而已。你应该把问题报告到matlab的技术支持。

    出现这个问题的原因肯定不是C runtime载入问题,因为这个错误信息是C runtime在被不当调用的时候产生的。



    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2010年5月17日 21:23
    版主

全部回复

  • 这个错误信息是很通用的信息,只是说明产品里有bug而已。你应该把问题报告到matlab的技术支持。

    出现这个问题的原因肯定不是C runtime载入问题,因为这个错误信息是C runtime在被不当调用的时候产生的。



    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2010年5月17日 21:23
    版主
  • 谢谢您了,版主,这个问题折腾我好几天了
    2010年5月18日 0:19