• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > COM数据库组件:在IDL文件中定义枚举类型遇到的问题

COM数据库组件:在IDL文件中定义枚举类型遇到的问题

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了com idl,com idl connect,idl,idl是什么意思,envi idl技术殿堂等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: COM数据库组件:在IDL文件中定义枚举类型遇到的问题
描述:

我的IDL文件是这么定义的:
import "oaidl.idl";
import "ocidl.idl";
enum DataTypeEnum
{
    adEmpty = 0,
    adTinyInt = 16,
    adSmallInt = 2,
    adInteger = 3,
    adBigInt = 20,
    adUnsignedTinyInt = 17,
    adUnsignedSmallInt = 18,
    adUnsignedInt = 19,
    adUnsignedBigInt = 21,
    adSingle = 4,
    adDouble = 5,
    adCurrency = 6,
    adDecimal = 14,
    adNumeric = 131,
    adBoolean = 11,
    adError = 10,
    adUserDefined = 132,
    adVariant = 12,
    adIDispatch = 9,
    adIUnknown = 13,
    adGUID = 72,
    adDate = 7,
    adDBDate = 133,
    adDBTime = 134,
    adDBTimeStamp = 135,
    adBSTR = 8,
    adChar = 129,
    adVarChar = 200,
    adLongVarChar = 201,
    adWChar = 130,
    adVarWChar = 202,
    adLongVarWChar = 203,
    adBinary = 128,
    adVarBinary = 204,
    adLongVarBinary = 205
};
enum ParameterDirectionEnum
{
    adParamUnknown = 0,
    adParamInput = 1,
    adParamOutput = 2,
    adParamInputOutput = 3,
    adParamReturnValue = 4
};
[
object,
uuid(9A5D23C5-7848-46FF-A1BB-1516122DA76A),
dual,
helpstring("IADOTier Interface"),
pointer_default(unique)
]
interface IADOTier : IDispatch
{
     [id(1), helpstring("method Open")] HRESULT Open([in] BSTR source, [in] BSTR user, [in] BSTR pwd);
     [id(2), helpstring("method OpenRecordset")] HRESULT OpenRecordset([in] VARIANT query);
     [id(3), helpstring("method CloseRecordset")] HRESULT CloseRecordset(void);
     ........
     ........
};
[
uuid(0506502A-32D1-445B-BA9F-CD8F6DEDA925),
version(1.0),
helpstring("ADOAccessor 1.0 Type Library")
]
library ADOACCESSORLib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
[
uuid(2CD7E755-374C-4D9A-8B29-33D52BEFE022),
helpstring("ADOTier Class")
]
coclass ADOTier
{
[default] interface IADOTier;
};
};
在编译成功后编译器往ADOAccessor.h中自动写入了如下内容:
enum DataTypeEnum
{
    adEmpty = 0,
    adTinyInt = 16,
    adSmallInt = 2,
    adInteger = 3,
    adBigInt = 20,
    adUnsignedTinyInt = 17,
    adUnsignedSmallInt = 18,
    adUnsignedInt = 19,
    adUnsignedBigInt = 21,
    adSingle = 4,
    adDouble = 5,
    adCurrency = 6,
    adDecimal = 14,
    adNumeric = 131,
    adBoolean = 11,
    adError = 10,
    adUserDefined = 132,
    adVariant = 12,
    adIDispatch = 9,
    adIUnknown = 13,
    adGUID = 72,
    adDate = 7,
    adDBDate = 133,
    adDBTime = 134,
    adDBTimeStamp = 135,
    adBSTR = 8,
    adChar = 129,
    adVarChar = 200,
    adLongVarChar = 201,
    adWChar = 130,
    adVarWChar = 202,
    adLongVarWChar = 203,
    adBinary = 128,
    adVarBinary = 204,
    adLongVarBinary = 205
};
enum ParameterDirectionEnum
{
    adParamUnknown = 0,
    adParamInput = 1,
    adParamOutput = 2,
    adParamInputOutput = 3,
    adParamReturnValue = 4
};
下次继续编译时就会出现编译错误:
...\adoaccessor.h(70) : error C2011: 'DataTypeEnum' : 'enum' type redefinition
...\adoaccessor.h(108) : error C2011: 'ParameterDirectionEnum' : 'enum' type redefinition
有什么办法让编译器不往adoaccessor.h中导入上述枚举类型的内容吗?
请指教!!!


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 想通过COM接口设置一个回调函数,如何定义idl?
  • com技术内幕的第十章:如何编译idl文件(先20分试探)?
  • 如何在COM接口中传递IDL基本类型的数组
  • 给一个已经存在的类添加COM接口是否只能手工修改IDL文件?
  • COM入门问题,与idl文件和uuid有关
  • idl和COM组件的一个菜鸟级问题
  • com中idl文件问题!?
  • COM数据库组件:在IDL文件中定义枚举类型遇到的问题

相关文章

  • 2017-06-04 求实例源码,IE组件编写
  • 2017-06-05 默认的散列-列集功能,是不是只能传递单个的参数,不能传递数组和指针?
  • 2017-06-05 如何知道一个线程是否正在运行?
  • 2017-06-05 在某些需要延时结束的线程,请问如何处理比较合适?
  • 2017-06-04 如何开发一个ActiveX控件,在其中调用另外一个控件
  • 2017-06-04 紧急~~与WEB无关,却关乎所有中国人!!
  • 2017-06-05 什么情况下需要#include<afxdtctlh>?
  • 2017-06-04 寻DCOM高手处理一个BUG,有酬劳
  • 2017-06-04 ActiveX中的接口如何定义?
  • 2017-06-04 求助,有什么控件可以实现类似效果,有图

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 请问ACTIVEX读写内存堆的问题?
    • WTL怎么实现拖动树控件?
    • 一个关于OCX全屏的诡异问题--紧急求助--集思广益
    • IWebBrowser2::Navigate的问题
    • ATL源码可以修改吗?
    • 以后是ActiveX还是COM的天下?
    • 我用MFC在一个对话框上显示一个图片,我怎么把他移值为ACTIVE控件???
    • Activex控件在Activexcontroltestcontainer运行正常,但将控件放到VB工程中就死机,应如何调试?
    • 简单的读写XML操作程序
    • 在网页中嵌入Active控件,响应鼠标右键菜单

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有