主题:超菜鸟问题,在win32控制台程序中如何用MessageBox函数
zhaobing55555
[专家分:10] 发布于 2006-06-21 00:54:00
vc.net开发超菜鸟问题,在win32控制台程序中如何用MessageBox函数
要注意什么,请各位指点,小弟的QQ是451500169希望和vc.net的朋友一起学习。
回复列表 (共5个回复)
沙发
cipc [专家分:2280] 发布于 2006-06-21 13:33:00
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;
}
}
板凳
zhaobing55555 [专家分:10] 发布于 2006-06-21 22:02:00
谢谢!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 楼
cipc [专家分:2280] 发布于 2006-07-06 18:04:00
虽然我不懂VC,但是从错误上来看应该是关于VC和WIN 32 API函数相对应的类型有问题。你可以参考下面这个网站:http://www.sozz.cn/00061/18443.htm
4 楼
ygwgd [专家分:90] 发布于 2006-09-15 09:59:00
int nSelect=::MessageBox(NULL,"HelloWindowsXP","Greeting",MB_OKCANCEL);
这一句改成:
int nSelect=::MessageBox(NULL,L"HelloWindowsXP",L"Greeting",MB_OKCANCEL);
函数参数类型问题!详细的看MSDN
5 楼
njhyy [专家分:110] 发布于 2006-11-18 02:59:00
在VS2005中 字符串都要加下L"XXX"或_T("XX")
我目前就发现 在条件中不用加通佩符
我来回复