我创建一个ATL工程(dll),建立一个简单对象,添加方法。然后在同一个sln下面建立一个控制台程序作为客户端。客户端程序导入tlb后调用是成功的。然后我在ATL工程里面添加一个头文件mystruct.h,内容如下:#pragma once
typedef [ uuid(22614E5D-A721-4815-B57D-66322ECDD65E)]
struct My
{
    [helpstring("A long value")]
    int x;
    int y;
}My;然后在idl文件的第一行去包含它:#include "mystruct.h"
import "oaidl.idl";
import "ocidl.idl";ATL的CoClass里面去使用My这个结构体是没有问题的。【问题】但是我选择重新编译客户端程序以后,生成的tlh/tlb文件里面仍然只是有CoClass相关的类和接口,我没有看到My这个结构体被定义。在客户端的cpp文件里面使用My,编译器提示找不到。这是为什么呢? 使用自定义的结构体,客户端程序为什么导入tlb以后没有看见呢?