none
command line error MIDL1003 不知道这个错误怎么解决? RRS feed

  • 问题

  • 是在Visual Studio下用intel fortran做COM Server,编译的时候出现的错误。

    错误 1  command line error MIDL1003 : error returned by the C preprocessor (1) midl 

    command line 的Additional Options设置也是按要求设的:/cpp_cmdifort /cpp_opt"/nologo /fpp /P /E /Qoption,fpp,/no-fort-cont"

    新手,看不懂也不知道怎么解决,求教前辈们~~~谢谢


    try again!never stop~~
    2011年2月22日 1:44

答案

全部回复

  • Hi makinoyui

    请您先尝试使用/I Switch (格式midl /I include_path)。用它来指定idl文件,包含的头文件和ACF文件的搜索路径。注意这个路径要用绝对路径。

    然后请确认下您是否能找到“unknwn.idl”,”wtypes.idl”,"basetsd.h","guiddef.h",”oaidl.idl”,”objidl.idl”,”oaidl.acf”.等文件,及确定他们是否包含在midlinclude路径下。

     

    以下是一些和您遇到一样问题的帖子:

    http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/7aec7c62-c92b-441d-a5d1-3140161bb3dc

    http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/b5e2cb70-6b1e-4b92-b3af-008eeb72bc88/

     

    谢谢,

    Lucy


    Lucy Liu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 makinoyui 2011年3月1日 4:56
    2011年2月23日 8:02
    版主
  • /I Switch怎么用啊?

    是在项目属性—>MIDL—>Command Line—>Additional Option 里面写语句吗?


    try again!never stop~~
    • 已标记为答案 makinoyui 2011年3月1日 4:56
    • 取消答案标记 makinoyui 2011年3月1日 4:56
    2011年2月24日 4:24
  • Hi makinoyui,

    >>是在项目属性—>MIDL—>Command Line—>Additional Option 里面写语句吗?

    是的.

    >>/I Switch怎么用啊?

    /I 后面输入包含IDL文件和ACF文件的include文件的路径。

    在我的电脑里这个路径是C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include ,您可以看看您电脑中“unknwn.idl”,”wtypes.idl”,"basetsd.h","guiddef.h",”oaidl.idl”,”objidl.idl”,”oaidl.acf”.等文件的在哪个include路径下,这个路径就是/I后面应该写的路径。

    具体关于/I switch 的信息请看 http://msdn.microsoft.com/en-us/library/aa367328(v=vs.85).aspx

    另外,我上个回答中提供的和您问题类似的帖子所提供的方法,您适用吗?

     

    如果您的问题解决了,请把有用的回答标记为答案!

    谢谢,

    Lucy

     


    Lucy Liu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年2月24日 9:12
    版主
  • 是这样写吗?格式是怎么的,我写不对呢

    Examples

    midl /I c:\include;c:\include\h /I\include2 filename.idl

    格式是/I Path; Path /I\ filename

    /I C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include;
      C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include/I \unknwn.idl;
     C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include/I \wtypes.idl;
     C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include/I \basetsd.h;
     C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include/I \guiddef.h;
     C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include/I \oaidl.idl;
     C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include/I \objidl.idl;
     C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include/I \oaidl.acf;

     


    try again!never stop~~
    2011年2月25日 0:49
  • Hi makinoyui,

    如果您确定需要的文件就在您写的目录下。那您只需要谢include路径就行了,另外注意在/I后面加空格,路径加引号。

    具体格式是:

    /I "C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include"

     

    如果您的问题解决了,请把有用的回答标记为答案!

    谢谢,

    Lucy


    Lucy Liu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 makinoyui 2011年3月1日 4:56
    2011年3月1日 3:41
    版主
  • 谢谢你的耐心答复~~~

    问题解决了!


    try again!never stop~~
    2011年3月1日 4:58