LPWSTR 類型的實參與const.char *類型形參不兼容

  1. CString csPlus;
  2. ?CString csSummand;
  3. ?m_PlusNumber.GetWindowTextW(csPlus);
  4. ?m_Summand.GetWindowTextW(csSummand);
  5. ????
  6. ?int nPlus = atoi(csPlus.GetBuffer(0)); //將編輯框文本轉換成整數
  7. // int nPlus = atoi(strcpy(csPlus.GetBuffer(10),"aa"));
  8. ?csPlus.ReleaseBuffer();
  9. ?int nSummand = atoi(csSummand.GetBuffer(0));
  10. ?csSummand.ReleaseBuffer();
  11. ?int nRet = nPlus + nSummand;
  12. ?char chRet[128] = {0}; //將結果裝換成字符串
  13. ?itoa(nRet,chRet,10);
  14. ?m_Result.SetWindowTextW(chRet);

? 在 5? 8?? 13 行處會報錯

原因分析:

這些代碼在VC6 下面是可以的? 在VC2010下不能通過

VC6默認使用字符ANSII編碼方式

VC2010默認使用UNICODE編碼方式

為了滿足程序代碼國際化的需要,業界推出了Unicode標準,它提供了一種簡單和一致的表達字符串的方法,所有字符中的字節都是16位的值,其數 量也可以滿足差不多世界上所有書面語言字符的編碼需求,開發程序時使用Unicode(類型為wchar_t)是一種被鼓勵的做法。

LPWSTR與LPCWSTR由此產生,它們的含義類似于LPSTR與LPCSTR,只是字符數據是16位的wchar_t而不是char。

CString是一個動態TCHAR數組,BSTR是一種專有格式的字符串(需要用系統提供的函數來操縱,LPCTSTR只是一個常量的TCHAR指針。

在ANSII和UNICODE兩種情況下,TCHAR的字符位數不一樣,所以會有這樣的報錯。

最簡單的解決方法是工程右鍵屬性 修改編碼方式從unicode改為多字節字符集。

在VC2010中 將CString轉換成char? 應該使用 _wtoi

5 ,8修改為:

  1. int nPlus = _wtoi(csPlus.GetBuffer(0));
  2. ?int nSummand = _wtoi(csSummand.GetBuffer(0));

對13行的修改 修改為:

可添加聲明

  1. CString csRet;

字符串指針(char *)等已經被CString構造函數支持的數據類型可以直接賦值

將chRet賦給csRet

  1. csRet = chRet;

最后一行修改為

  1. m_Result.SetWindowTextW(csRet);

對13行的修改更簡化應該為尋找一種將int型轉換成CString的方法。

在VC6中可以直接?

  1. csRet.Format("%d",nRet);

但是在2010中不適用。

在VC2010中應該這樣寫

  1. csRet.Format(_T("%d"),nRet);

OK? 修改完成 可以運行

轉載于:https://www.cnblogs.com/duyy/p/3600454.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/377240.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/377240.shtml
英文地址,請注明出處:http://en.pswp.cn/news/377240.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

空間換時間,把遞歸的時間復雜度降低到O(2n)

遞歸算法的時間復雜度除非只有前兩項,否則都不是線性的,并且相當耗費內存。我們用最常見的的fibonacci數列來說明: function fibonacci(n){if( n 0 || n 1){return n;} else {return fibonacci(n - 1) fibonacci(n - 2);} } 這是一種最常見…

scala char_Scala中的Char數據類型

scala charScala Char數據類型 (Scala Char Data Type) Character (char) in Scala is a data type that is equivalent to 16-bit unsigned integer. The character data type stores a single character. It can be an alphabet, numbers, symbols, etc. The character takes…

《MySQL——給長字符串加索引》

對于長字符串,可用如下方式建立索引: (1)前綴索引 (2)字符串倒敘前綴索引 (3)添加hash字段并在hash字段上加索引 (4)字段拆分(一個字段可拆分為兩…

[藍橋杯歷屆試題] 歐拉與雞蛋

大數學家歐拉在集市上遇到了本村的兩個農婦,每人跨著個空籃子。她們和歐拉打招呼說兩人剛剛賣完了所有的雞蛋。 歐拉隨便問:“賣了多少雞蛋呢?” 不料一個說:“我們兩人自己賣自己的,一共賣了150個雞蛋,雖然…

Python元組練習

Here, we are covering following Python tuple exercises, 在這里,我們將介紹以下Python元組練習 , Creating & printing a tuple 創建和打印元組 Unpacking the tuple into strings 將元組解包成字符串 Create a tuple containing the letters of…

傻瓜教你看清MVC內部執行流程之ViewData數據傳輸,輕松學MVC--①目了然篇(待續)

1.首先在執行到Controller里面的action(方法)時,執行到最后會調用一個View()-->此方法是Controller的一個方法 源代碼: View Code protected internal ViewResult View(){return View(null /* viewName */, null /* masterName */, null /* model */);} 2.然后繼續調用自己…

《MySQL——count()邏輯》

count()用法 count()語義:該函數為一個聚合函數,對于返回的結果集一行行地判斷,如果count函數地參數不是NULL,累計值就加1,否則不加。最后返回累計值。 所以count(*),count(主鍵id)和count(1)都表示返回滿足條件地結果…

phpmailer 發送郵件

<?php /* 可用新浪和網易郵箱測試成功&#xff0c;但QQ不成功&#xff01; 下載 phpmailer 解壓 http://phpmailer.worxware.com/要注意郵件服務器的端口號&#xff0c;默認是 25 不用修改&#xff0c;如果不是則要修改如下&#xff0c;在$mail->IsSMTP() ;下一行加上 $…

靜態負載均衡和動態負載均衡_動態負載平衡

靜態負載均衡和動態負載均衡動態負載平衡 (Dynamic Load Balancing) The algorithm monitors changes on the system workload and redistributes the work accordingly. 該算法監視系統工作負載的變化并相應地重新分配工作。 This algorithm works on three strategies: 該算…

poj 1088

題目&#xff1a;http://poj.org/problem?id1088 記憶化搜索&#xff0c;dp[r][c] max(dp[r - 1][c] , dp[r 1][c] , dp[r][c - 1] , dp[r][c 1]) 1 ( if (題目給的條件滿足&#xff09;&#xff09; View Code 1 using namespace std;2 typedef long long ll;3 const in…

《MySQL——order by邏輯(全字段排序與rowid排序)》

創建一個表&#xff0c;然后使用查詢語句&#xff1a; 查詢城市是“杭州”的所有人名字&#xff0c;并且按照姓名排序返回前 1000 個人的姓名、年齡 create table t (id int(11) not null,city vachar(16) not null,name vachar(16) not null,age vachar(16) not null,addr va…

ruby 生成哈希值_哈希== Ruby中的運算符

ruby 生成哈希值In the last article, we have seen how we can compare two hash objects with the help of < operator? "<" method is a public instance method defined in Rubys library. 在上一篇文章中&#xff0c;我們看到了如何在<運算符的幫助下…

HTML5 video

摘要&#xff1a;本文主要介紹HTML5 video在android2.2中實現的主要架構和程序流程。 一、實現HTML5 video主要的類 1&#xff0e; 主要類結構及介紹 圖1中綠色類為java類&#xff0c;其余為c類&#xff0c;下面是各個類的具體介紹: (1) HTMLElement類不是最上層類&#xff0c…

《MySQL——使用聯合索引、覆蓋索引,避免臨時表的排序操作》

聯合索引避免臨時表排序 在上一篇筆記(MySQL——order by邏輯&#xff08;全字段排序與rowid排序&#xff09;)中&#xff0c;講到查詢語句查詢多個字段的時候使用order by語句實現返回值是有序的&#xff0c;而order by是使用到了臨時表的&#xff0c;會帶來時間和空間損失。…

明源面試

明源面試&#xff0c;筆試題目如下 一、SQL測試題 1 有兩張表 根據給出的SQL語句&#xff0c;寫出返回的行數分別是多少&#xff1f;為了形象直觀的顯示&#xff0c;我給出了sql語句執行結果。 A 學生表 B分數表 新題目 select a.* from a inner join b on a.idb.id; …

AEAP的完整形式是什么?

AEAP&#xff1a;盡早 (AEAP: As Early As Possible) AEAP is an abbreviation of "As Early As Possible". AEAP是“ April越早”的縮寫 。 It is an expression, which is commonly used in messaging or chatting on social media networking sites like Faceboo…

jquery 視覺特效(鼠標懸停時依次顯示圖片)

效果描述&#xff1a; 有幾副圖片&#xff0c;讓他們依次疊加重合。首先顯示第一張圖片。然后鼠標懸停在上面&#xff0c;邊框變化。然后離開&#xff0c;然后第一張淡出&#xff0c;第二張淡入。接著懸停在第二張圖片&#xff0c;邊框變化&#xff0c;然后離開&#xff0c;第二…

《MySQL tips:查詢時,盡量不要對字段進行操作》

維護一個交易系統&#xff0c;交易記錄表tradelog包含交易流水號(tradeid)、交易員id(operator)、交易時間(t_modified)等字段。 建表語句如下&#xff1a; create table tradelog (id int(11) not null,tradeid varchar(32) default null,operator int(11) default null,t_mo…

cocos2dx blender 骨骼動畫實現

前言 cocos2d-x 中相關部分代碼介紹 背景知識介紹 參考 http://www.3dkingdoms.com/weekly/weekly.php?a4 一 簡單3d 模型支持 第一步實現對3d 模型的簡單支持&#xff0c;完成一個CCSprite3D 類 參考CCSprite 類 以及 CCGLProgram 代碼 主要修改 draw 方法。 添加了定點數組…

關于web.config中customErrors節點說明

關于web.config中<customErrors>節點說明 <customErrors>節點用于定義一些自定義錯誤信息的信息。此節點有Mode和defaultRedirect兩個屬性&#xff0c;其中defaultRedirect屬性是一個可選屬性&#xff0c;表示應用程序發生錯誤時重定向到的默認URL&#xff0c;如果…