回 帖 发 新 帖 刷新版面

主题:超菜鸟问题,在win32控制台程序中如何用MessageBox函数

vc.net开发超菜鸟问题,在win32控制台程序中如何用MessageBox函数
要注意什么,请各位指点,小弟的QQ是451500169希望和vc.net的朋友一起学习。

回复列表 (共5个回复)

沙发

using System;
using System.Runtime.InteropServices;
class Program
{
     [DllImport("User32.dll")]
     public static extern int MessageBox(int h, string m, string c, int type);

     static int Main()
     {
         MessageBox(0, "Hello Win32 API", "水之真谛", 4);
         Console.ReadLine();
         return 0;
     }
}

板凳

谢谢!cipc的帮助,可是我还是没有办法知道我的程序哪出了问题,是不是我的vc2005不好用,能不能请你帮我看看我的程序是哪出了问题,以下是我的源程序在vc2005中的不能通过的提示错误: error C2664: “MessageBoxW”: 不能将参数 2 从“const char [15]”转换为“LPCWSTR”
        与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换。
#include "stdafx.h"
#include <windows.h>

int _tmain(int argc, _TCHAR* argv[])
{
    int nSelect=::MessageBox(NULL,"HelloWindowsXP","Greeting",MB_OKCANCEL);
     if(nSelect=IDOK)
         printf("确定\n");
     else printf("取消\n");
    return 0;
}

3 楼

虽然我不懂VC,但是从错误上来看应该是关于VC和WIN 32 API函数相对应的类型有问题。你可以参考下面这个网站:http://www.sozz.cn/00061/18443.htm

4 楼

int nSelect=::MessageBox(NULL,"HelloWindowsXP","Greeting",MB_OKCANCEL);
这一句改成:
int nSelect=::MessageBox(NULL,L"HelloWindowsXP",L"Greeting",MB_OKCANCEL);
函数参数类型问题!详细的看MSDN

5 楼

在VS2005中 字符串都要加下L"XXX"或_T("XX")
  我目前就发现 在条件中不用加通佩符

我来回复

您尚未登录,请登录后再回复。点此登录或注册