忧灵 2015-04-07 11:50 采纳率: 84.6%
浏览 2426
已采纳

C++API函数的重定义。编译无法通过的问题。

在一个生成dll的C++工程,头文件Local.h中,有如下代码:

 DLL IMPORT WORD WINAPI PrintScreen(HWND,WORD,WORD,WORD,LPSTR,BOOL)

在c文件中也是调用的这个6各参数的函数。但是编译的时候,由于在系统API:winuser.h中,有一个3各参数的同名函数,PrintScreen,导致编译提示重定义。无法编译通过。
我想问一下,在本地中定义的这种跟系统api同名的函数,算是对系统函数的重写吗?调用的时候是怎么样的?我如何才能编译通过?
另:VS6.0同样的情况不会报错,VS2012就会报错。应该如何处理?
感谢

  • 写回答

6条回答

  • oyljerry 2015-04-07 14:01
    关注

    不要跟系统取同样的名称,不然容易冲突,也会出现莫名其妙的错误。
    最好是取自己的名字,然后加名字空间来区分。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题