大家说说啊:     ①: 怎样在 程序 刚启动完时,
             执行特定的函数代码(比如AfxMessageBox(……)  )?
     ②: 多字节字符集 与 unicode 字符集 什么不同 。
          什么情况用那个啊?
                            
          我改了项目的字符集属性,比如 把原先的unicode改成 多字节字符集  会发生什么变化 ?

解决方案 »

  1.   

    1. 没有“刚启动完”这样的消息。不过你可以在WM_PAINT之类消息时做,但要做标志,下次WM_PAINT不再messagebox。
    2. 字符内部编码不同。tchar.h
      

  2.   

    1.你可以在C***App类的构造函数里或者InitInstance()函数里添加你想要程序开始执行的代码,比如: AfxMessageBox("开始执行程序了...");
    2.由于刚开始用的都是英文字母,所以字符集中字符宽度比较小,后来加入其他字符集比如中文,西班牙语等,字符宽度需要变宽以支持相应的语言,这是根据不同的标准制定的,记不太清了,大概是这个意思吧...
      

  3.   


    刚启动之前,肯定先要进行初始化,
    在初始化函数里加入AfxMessageBox("十分上了");程序启动后就回弹出“十分上了”的对话框
      

  4.   

    MessageBox() 会暂停程序的启动啊   比如我要在 程序 界面完全出来后 显示 密码输入对话框 该怎么办 ?
      

  5.   

    AfxMessageBox("十分上了");不是要暂停 代码的运行吗?   比如我要在程序启动后 显示 输入密码对话框 该怎么办啊?
      

  6.   

    1、取决于你什么时候算“启动完”。2、项目设置只是影响一些默认值,比如MessageBox这个宏定义,是定义为MessageBoxA还是MessageBoxW,而这两个函数所要求的参数类型不同,前者是char*,后者是wchar_t*。
    不过你还是可以在unicode里面用多字符集,或者在多字符里面用unicode,这个要随机应变。
    既然你现在不知道这个,可以先不管,都先用多字符集好了。
      

  7.   

    在initinstance里可以达到你的目的啊
      

  8.   


    MessageBox() 会暂停程序的启动啊   比如我要在 程序 界面完全出来后 显示 密码输入对话框 该怎么办 ------
    正如ls说的在initinstance中调对话框就行..!
      

  9.   

    原先的unicode改成 多字节字符集  会发生什么变化 
    这句话我不太明白什么意思??
    char是单字节的,wchar即unicode格式的,使双字节的。最明显的区别
    如char a="ni号" len=4
    wchar a="ni号"  len=6
    上述语法有错哦
      

  10.   

    LS这样说容易误导别人的:
    char a[]="ni号";
    strlen(a)为4,
    sizeof(a)为5。
    wchar_t a[]=L"ni号";
    strlen((char*)a)为1,因为unicode的'n'的第二个字节已经是'\0'了。
    wcslen(a)w为3,'n'、'i'、'号',共三个unicode字符。
    sizeof(a)为8。
      

  11.   

    1。你可以在app的InitInstance()中,主窗口dlg之前,自己搞个DLg.
    2。改那个会影响你字符串的存储,代码不影响。