Depends观察DLL后疑惑 在DLL中有一函数名字为Jwt,用Depends打开观察显示为?Jwt@@YAXXZ这是为什么?有Depends打开其他一些windows自带的dll却显示正常但使用均正常这是为何? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是因为这个DLL并没有一个.def的函数声明导出文件,如果做一个.def的函数声明文件就好了 ?Jwt@@YAXXZ一种是类C调用,另一种是其他都可以调用的 这是函数名称修饰,编译器改动的。如果你使用新版的Depends,有一个Decorate C++ Functions选项,按下即可把这些东西解释成你想要的函数形式。 這與函數的調用方式有關,函數的調用方式可以大至分為三種:1._stdcall (API)2._cdecl (vc 默認)3._fastcall (在BCB裡面用的比較多)這三種調用各有用處,具體的用法你在網上搜一下吧由於上面的三面調用的方式的不同,輸出函數的方式也就不同,因此出現了上面的函數名不同的問題 C++会对函数加上修饰符,VC6有命令行工具在bin目录下,undname,可以取得你在源代码中定义的函数名 Name mangling,C++中用于解决函数重载的方法 因为编译器对函数名进行了修饰,考虑到C++中的函数重载,因而不能用C中的直接用函数名,Name mangling,编译器将参数加入了函数名修饰想不被编译器修改,可以直接在def中说明导出的函数名 正如楼上各位所说,是函数名修饰的问题。我以前写过一篇文章,专门讨论这个主题的,在我的BLOG上有: http://blog.csdn.net/goodname008/archive/2004/07/24/50662.aspx 关于odbc和ado的问题 如何在树控件的叶子结点前加上复选框,使在点击叶子结点的时候复选框被选中? MFC OnCreate的问题 Visual C++网络编程案例详解中的邮件收发器编程? 关于getaddrinfo api源文件的编译 鼠标十字线疑问?谢谢 彩色图像需要先灰度变换才能小波变换么? 现在大四,过年后再找工作是不是太晚了? 一个关于线程的问题 怎样做浮起的工具条,显示在屏幕的边沿,而且拖动时可改变大小形状? ASP.NET程序与VC程序怎么通过消息通信,高手帮忙!分不够可以再加.......... 关于CRect::operator LPCRECT()的一个问题,
這與函數的調用方式有關,函數的調用方式可以大至分為三種:
1._stdcall (API)
2._cdecl (vc 默認)
3._fastcall (在BCB裡面用的比較多)這三種調用各有用處,具體的用法你在網上搜一下吧由於上面的三面調用的方式的不同,輸出函數的方式也就不同,因此出現了上面的
函數名不同的問題
想不被编译器修改,可以直接在def中说明导出的函数名
http://blog.csdn.net/goodname008/archive/2004/07/24/50662.aspx