易截截图软件、单文件、免安装、纯绿色、仅160KB

VC .NET中String^ 与ANSI C char*互转

VC.NET中的String类是利用Unicode字符集编码来表示文本。Unicode字符集中每个字符(汉字、英文字母)都占2个字节,且其字符串是以2个连续的\0结尾的。
ANSI的ASCII字符集是最常见的字符集,常用于表示txt的文本文件。在ASCII字符集中英文占一个字节,汉字2个字节,且其字符串是以一个\0结尾的。
在利用VC.NET进行混合编程时,经常需要实现String与char*的互转,例如在TextBox控件中输入的Text作为fopen或者CreateFile的文件名参数时,常需要实现char*的转化。故提供如下的转化方法:
 
 
#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
 
 
int main(array<System::String ^> ^args)
{
 // String^ converts to char*
 
 char szDestOutChar[256];
 String^ SrcInStr = "C:\\Documents and Settings\\Adiminstrator\\我的文档\\swq.txt";
 int SourceStrLen = SrcInStr->Length;
 wchar_t *pwszStr = new wchar_t[SourceStrLen + 1];
 array <System::Char>^ pClr = SrcInStr->ToCharArray();
 for (int i = 0; i < SourceStrLen; i++)
 {
   pwszStr[i] = pClr[i];
 }
 pwszStr[SourceStrLen] = '\0';
 ::WideCharToMultiByte(CP_ACP, NULL, pwszStr, -1, szDestOutChar, 256, NULL, NULL);
 
 // char* converts to String^ 
 
 char* szInSrcChar =  "C:\\Documents and Settings\\Adiminstrator\\我的文档\\swq.txt";
 int wcsLen = ::MultiByteToWideChar(CP_ACP, NULL, szInSrcChar, strlen(szInSrcChar), NULL, 0);
 wchar_t* wszStr = new wchar_t[wcsLen + 1];
 ::MultiByteToWideChar(CP_ACP, NULL, szInSrcChar, strlen(szInSrcChar), wszStr, wcsLen);
 wszStr[wcsLen] = '\0';
 String^ ClrOutStr = gcnew String(wszStr);
 
 System::Console::WriteLine("Press ENTER key to exit !");
 System::Console::Read();
 
 delete pwszStr;
 delete wszStr;
 return 0;
}


相关文档:

C语言连接mysql数据库,读取mysql内容

 //linux下编译g++ $(mysql_config --cflags)  ***.cpp  $(mysql_config --libs)
/*mysql数据库中表的内容
mysql> select * from maindb;
+------------------+---------+-------------+---------+----------+---------------------+---------------------+---------------------+------------------- ......

C/C++问答(3):关于构造和析构函数使用多态

问:
在构造或析构期间能使用虚函数吗?
答:
能,但最好不要这么做。
前两天在公司游戏项目开发过程中,在析构函数中不小心调用了虚函数,而且还是个纯虚函数。
因为一直是在Rlease模式下工作的,导致系统直接终止客户端,虽然控制台有打印这个错误,但终止太快,也没看到。切换在Debug下调试,则会报R6025 -pure vir ......

C++中extern “C”含义深层探索

(转)C++中extern “C”含义深层探索
 
 
1.引言
  C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象&rdquo ......

C/C++——小编谈C语言函数那些事(9)

C程序是由一组或是变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。下面小编和大家分享下C语言中的函数。
1.     harderr函数
harderr函数的功能是建立一个硬件错误处理程序,其用法是:void harderr(int (*fptr)());程序例子如下:
#include <stdio.h>
......

C/C++——小编谈C语言函数那些事(11)

C程序是由一组或是变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。下面小编和大家分享下C语言中的函数。
 
1. kbhit函数
 
kbhit函数是检查当前按下的键,其用法为:int kbhit(void);程序例子如下:
#include <conio.h>
int main(void)
{
   c ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号