有谁知道MessageBox,MessageBoxA,MessageBoxW三个函数之间的具体使用差别?

解决方案 »

  1.   

    没多大区别,可能支持的操作系统
    版本有些区别!用messagebox旧可以了
      

  2.   

    MessageBox,MessageBoxA,MessageBoxWA是指WIN16下的函数
    W指的是WIN32下的API函数如果不指定A或是W的话,则根据WINDOWS系统的版本来确定调用具体哪个函数PS:好像是这样解释的
      

  3.   

    MessageBox      A 表示支持ANSI字符串,W表示支持WideChar/Unicode,
    一般API函数去掉A作为通用/默认的函数
      

  4.   

    在Delphi的Windows.pas是这样声明的:
    function MessageBox; external user32 name 'MessageBoxA';
    function MessageBoxA; external user32 name 'MessageBoxA';
    function MessageBoxW; external user32 name 'MessageBoxW';所以MessageBox = MessageBoxA .
      

  5.   

    同意 Kingron(单身走我路……) 
    但一般API函数去掉A作为通用/默认的函数,是A\W的一种
      

  6.   

    楼上的Kingron(单身走我路……) 说得很对一个是Ansi一个是Unicode字符集的API,通常win98支持Ansi的,winNT支持Unicode的,但是他们一般都提供的两个版本的API接口,具体的是不是支持要看MSDN的详细解释了。Delphi中默认的都用Ansi版本的,可能将来默认的会改到Unicode上面来,毕竟4字节的字符集标准都制定了,何况2字节的字符集呢!?
      

  7.   

    可是NT下面好像使用MessageBoxIndirect()函数
      

  8.   

    在USER32.DLL中,没有32位MessageBox的函数的入口点。但是实际上呢,有两个入口点,一个是MessageBoxA(ASCII版),还有一个是MessageBoxW(宽字符版)不过通常不需要考虑的,程序中用MessageBox就OK了
      

  9.   

    如果想知道这方面更多的东西,建议看看“Windows程序设计”的第二章~