`

LNK1106 microsoft msdn vs.net bug 临时解决方案

阅读更多

FIX: 您收到一个"LNK1106: 无效的文件或磁盘已满"生成在 Visual c + +.net 项目时出现错误消息

要变通解决此问题,添加 /IGNOREIDL 链接器选项。 在 Visual Studio.net IDE 中设置此链接器选项,请按照下列步骤操作:

  1. 打开项目的 属性页 对话框。
  2. 展开 链接器 文件夹。
  3. 单击 嵌入的 IDL 查看嵌入的 IDL 属性页。
  4. 忽略嵌入的 IDL 属性设置为

Compiler Warning (level 1) C4772

#import referenced a type from a missing type library; 'missing_type' used as a placeholder

A type library was referenced with the #import directive. However, the type library contained a reference to another type library that was not referenced with #import . This other .tlb file was not found by the compiler.

Note that the compiler will not find type libraries in different directories if you use the /I (Additional Include Directories) compiler option to specify those directories. If you want the compiler to find type libraries in different directories, add those directories to the PATH environment variable.

This warning is, by default, issued as an error. C4772 can not be suppressed with /W0.

Example

This is the first type library needed to reproduce C4772.

// c4772a.idl
[uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12b")]
library C4772aLib
{
[uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c100")]
enum E_C4772a
{
one, two, three
};
};

This is the second type library needed to reproduce C4772.

// c4772b.idl
// post-build command: del /f C4772a.tlb
// C4772a.tlb is available when c4772b.tlb is built
[uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12d")]
library C4772bLib
{
importlib ("c4772a.tlb");
[uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12e")]
struct S_C4772b
{
enum E_C4772a e;
};
};

The following sample generates C4772:

// C4772.cpp
// assumes that C4772a.tlb is not available to the compiler
// #import "C4772a.tlb"
#import "C4772b.tlb" // C4772 uncomment previous line to resolve
// and make sure c4772a.tlb is on disk
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics