C++ CString对象始终返回指针值
在VisualStudio2015环境中,我刚刚做了一个简单的Win32控制台应用程序项目来研究MFC。(另外,我检查了在项目向导过程中添加MFC的公共头文件) 这是这个项目的主要部分C++ CString对象始终返回指针值,c++,mfc,C++,Mfc,在VisualStudio2015环境中,我刚刚做了一个简单的Win32控制台应用程序项目来研究MFC。(另外,我检查了在项目向导过程中添加MFC的公共头文件) 这是这个项目的主要部分 #include "stdafx.h" #include "Practice02.h" #ifdef _DEBUG #define new DEBUG_NEW #endif CWinApp theApp; using namespace std; int main() { int nRetCode
#include "stdafx.h"
#include "Practice02.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
CWinApp theApp;
using namespace std;
int main()
{
int nRetCode = 0;
HMODULE hModule = ::GetModuleHandle(nullptr);
if (hModule != nullptr)
{
if (!AfxWinInit(hModule, nullptr, ::GetCommandLine(), 0))
{
wprintf(L"error: sample\n");
nRetCode = 1;
}
else
{
CString temp(L"Hello");
cout << temp << endl;
}
}
else
{
wprintf(L"Fatal Error: GetModuleHandle failure\n");
nRetCode = 1;
}
return nRetCode;
}
#包括“stdafx.h”
#包括“实践02.h”
#ifdef_调试
#定义新调试\u新
#恩迪夫
CWinApp-theApp;
使用名称空间std;
int main()
{
int nRetCode=0;
HMODULE HMODULE=::GetModuleHandle(nullptr);
if(hModule!=nullptr)
{
如果(!AfxWinInit(hModule,nullptr,::GetCommandLine(),0))
{
wprintf(L“错误:样本\n”);
nRetCode=1;
}
其他的
{
CString temp(L“你好”);
不能使用以下内容:
std::wcout << temp.GetString();
std::wcout使用以下内容:
std::wcout << temp.GetString();
std::wcout当您使用定义的\u UNICODE
编译时,您的字符串很宽,请打印到wcout
。是的,此项目使用UNICODE设置。并且,我将代码改为“cout I can't mound that.”。对于控制台程序,您可以创建控制台项目。添加\include
和\include”windows.h"
然后您可以使用CString
和WinAPI函数。您将无法使用其他MFC函数。删除CWinApp;
,删除AfxWinInit
…只是为了解释发生了什么:std::ostream
对几种指针类型有重载。默认情况下,它使用void const*
重载ch然后打印十六进制格式的地址。现在,尝试找出CString
转换为哪种类型,例如,通过调试器单步执行它。当您使用\u UNICODE
定义编译时,您的CString很宽,请改为打印到wcout
。是的,此项目使用UNICODE设置。并且,我从我不能理解这一点。对于控制台程序,可以创建控制台项目。添加#include
和#include“windows.h”
然后您可以使用CString
和WinAPI函数。您将无法使用其他MFC函数。删除CWinApp;
,删除AfxWinInit
…只是为了解释发生了什么:std::ostream
对几种指针类型有重载。默认情况下,它使用void const*
重载ch然后打印十六进制格式的地址。现在,试着找出你的CString
转换为哪种类型,例如,通过一个调试器对其进行单步调试。这正是我要找的!!谢谢,:)但是,我能问你这个更改如何使对象引用真实值吗@구마왕 在内部,CString有char*或wchar*。GetString返回const wchar\u t*,这与wcout一起工作。这正是我想要的!!谢谢,:)但是,我能问一下这个更改如何使对象引用真实值吗@구마왕 在内部,CString有char*或wchar*。GetString返回const wchar\u t*,这与wcout一起工作。