希望大家指点下问题。

2012-07-13 10:03:35
我看的是孙鑫的教程,我想知道这儿为什么有错误,大家不要告诉我视频上说的写法了。



string s1,s2,s3;
int num1,num2,num3;
// num1=this->GetDlgItemInt(IDC_EDIT1);
// num2=this->GetDlgItemInt(IDC_EDIT2);

CWnd* m_wnd1=this->GetDlgItem(IDC_EDIT1);
m_wnd1->GetWindowText(s1);

CWnd* m_wnd2=this->GetDlgItem(IDC_EDIT2);
m_wnd2->GetWindowText(s2);

num1=atoi(s1);
num2=atoi(s2);

num3=num1+num2;

_itoa(num3,s3,10);
this->SetDlgItemText(IDC_EDIT3,s3);


直接用CWnd定义一个指针,保存那个函数的返回值,存在问题吗?这里是一个对话框,应该有专门的对话框类。
是不是可以用基类的指针保存子类的对象,为什么呢?
...全文
111 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ouyh12345 2012-07-13
  • 打赏
  • 举报
回复
要的是CString &,你给的是string &,当然不行了。

A是代表什么. A只这是多字节版函数,W指宽字节版函数
_thiscall是什么呢?调用约定

楼主需要重新学习c/c++,补充基础知识
2012-07-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jarrylogin 的回复:]

这个谁也帮不了你, 只能先打基础,看看C++方面的书籍
[/Quote]
大哥啊,如果你无聊,就不要回帖,好吗?
每次看见这样的BB就烦躁。

你可以去BAIDU,或者GOOGLE下,为什么你让人烦。
Jarrylogin 2012-07-13
  • 打赏
  • 举报
回复
这个谁也帮不了你, 只能先打基础,看看C++方面的书籍
2012-07-13
  • 打赏
  • 举报
回复
string不能转换为CString吗?
还有,为什么会有下面这个函数的这种写法。

void __thiscall CWnd::GetWindowTextA(class CString &) const

A是代表什么.
_thiscall是什么呢?
2012-07-13
  • 打赏
  • 举报
回复
这个是提示错误:
--------------------Configuration: mobole - Win32 Debug--------------------
Compiling...
TestDlg.cpp
E:\c\C++\mobole\TestDlg.cpp(87) : error C2664: 'void __thiscall CWnd::GetWindowTextA(class CString &) const' : cannot convert parameter 1 from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'class CStrin
g &'
A reference that is not to 'const' cannot be bound to a non-lvalue
E:\c\C++\mobole\TestDlg.cpp(90) : error C2664: 'void __thiscall CWnd::GetWindowTextA(class CString &) const' : cannot convert parameter 1 from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'class CStrin
g &'
A reference that is not to 'const' cannot be bound to a non-lvalue
E:\c\C++\mobole\TestDlg.cpp(92) : error C2664: 'atoi' : cannot convert parameter 1 from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'const char *'
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
E:\c\C++\mobole\TestDlg.cpp(93) : error C2664: 'atoi' : cannot convert parameter 1 from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'const char *'
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
E:\c\C++\mobole\TestDlg.cpp(97) : error C2664: '_itoa' : cannot convert parameter 2 from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'char *'
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
E:\c\C++\mobole\TestDlg.cpp(98) : error C2664: 'SetDlgItemTextA' : cannot convert parameter 2 from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'const char *'
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
执行 cl.exe 时出错.

mobole.exe - 1 error(s), 0 warning(s)

英文不太好,而且那些东西basic,strin也没接触过。。大家解释下啊。

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧