超级烦:MIDL2025如何解决?

Jiemi 2002-07-22 04:36:17
给一个接口添加了一个方法之后,还没写代码,调试就出错:
D:\UserValidate\UserValidate.odl(11) : error MIDL2025 : syntax error : expecting a type specification near "HRESULT"
请问各位如何解决呢?
源代码如下:

// UserValidate.odl : type library source for UserValidate.dll
[
object,
uuid(4DEFF7D5-D8D9-4E18-9497-5A0EE9358C35),
dual,
helpstring("IValidate Interface"),
pointer_default(unique)
]
interface IValidate : IDispatch
{
[id(1), helpstring("方法ConnectToORA")] HRESULT ConnectToORA([out,retval] VARIANT_BOOL* VB_ConnectResult); //出错的行
};
import "oaidl.idl";

// This file will be processed by the MIDL compiler to produce the
// type library (UserValidate.tlb).

[ uuid(F70D44EC-CACD-4FF0-AD56-275749487D71), version(1.0) ]
library UserValidate
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");



//{{AFX_APPEND_ODL}}
//}}AFX_APPEND_ODL}}
[
uuid(869F4D8C-DD3B-47AE-8975-759FFFB81C5E),
helpstring("Validate Class")
]
coclass Validate
{
[default] interface IValidate;
};
};
...全文
784 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
kimryo 2002-07-23
  • 打赏
  • 举报
回复
MIDL Predefined and Base Types
MIDL supports the following base and predefined types.


boolean
byte
char
double
error_status_t
float
handle_t
htper
int
__int32
__int3264
__int64
long
short
small
void
void*
wchar_t
Jiemi 2002-07-23
  • 打赏
  • 举报
回复
有位朋友帮忙解决了
但很感谢仁兄的帮忙
Tony.X 2002-07-23
  • 打赏
  • 举报
回复
不要用中文试试。
Jiemi 2002-07-23
  • 打赏
  • 举报
回复
谢谢仁兄:)
我回去试试
kimryo 2002-07-23
  • 打赏
  • 举报
回复
前辈不敢当。
kimryo 2002-07-23
  • 打赏
  • 举报
回复
F:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\VC98\Include\DDRAW.H(161):typedef long HRESULT;
Jiemi 2002-07-23
  • 打赏
  • 举报
回复
对,请问kimryo(里百八式 八酒杯) 前辈:

使用HRESULT类型需要#include什么文件呢?我一直以为是MIDL默认支持的。
Jiemi 2002-07-23
  • 打赏
  • 举报
回复
对,请问kimryo(里百八式 八酒杯) 前辈:

使用HRESULT类型需要#include什么文件呢?我一直以为是MIDL默认支持的。
Jiemi 2002-07-23
  • 打赏
  • 举报
回复
谢谢您

可是,请问,我这里的错误,似乎是 midl无法识别 HRESULT 啊

拜托前辈了
Jiemi 2002-07-22
  • 打赏
  • 举报
回复
谢谢您了

刚才看到一个帖子,说可能是方法参数的类型variant_bool*有问题,可是我是总下拉列表里选的,怎么可能出错呢??
kimryo 2002-07-22
  • 打赏
  • 举报
回复
HRESULT类型MIDL绝对不会认不到的。

是不是你的VC有问题哦?
Jiemi 2002-07-22
  • 打赏
  • 举报
回复
谢谢您了,但或许不是这个原因,是方法返回值类型的问题,不是方法的参数。

我后来尝试在VC6.0建一个custom接口,加一个返回void类型的方法,什么代码也不写,一调试,结果同样有这两个错误。

kimryo 2002-07-22
  • 打赏
  • 举报
回复
idl文件要类型定义。。。。你可以不用VARIANT_BOOL,用int不久得了。

CSDN太破。。。
kimryo 2002-07-22
  • 打赏
  • 举报
回复
D:\UserValidate\UserValidate.odl(11) : error MIDL2025 : syntax error : expecting a type specification near "HRESULT"

这个错误说明有MIDL编译器不认识的类型,你需要将该类型的定义加到.idl文件中,不过调用时要麻烦一点。


其实就你的情况完全可以换一种变量类型来标示connect是否成功。

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧