作者DirKai (Dirk_AI(MIX))
看板C_and_CPP
标题[问题] QT 与C++ 新手发问
时间Wed Jul 12 11:19:04 2017
开发平台(Platform): (Ex: Win10, Linux, ...)
win7
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
QT Creator
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
自己写的ImgProcess
问题(Question):
利用Class 中的function,去修改Class里面的阵列,
怎麽改都不会变,fprintf到txt档都是0。
◎另外的小问题:
(至於为什麽要fprintf成txt来debug...
因为QT createor我不知道要把处理的影像档,放哪才读的到。
每次都要图档放在debug里面,compile完再自己去debug资料夹点执行档,
如果用creator直接按执行,放main.cpp旁边、放exe旁边,都读不到...
为什麽!!!!!!
喂入的资料(Input):
预期的正确结果(Expected Output):
错误结果(Wrong Output):
程式码(Code):(请善用置底文网页, 记得排版)
1.
http://ideone.com/1vDmDI
Class 里面public的: unsingned char img_ori[]、img_dst
void imgProc();
2.
http://ideone.com/TGh5xm
主要看:161~165行,我将阵列全部存成255。
当我UI画面按下button,执行38行的creatFlist()
而111行,执行 testWidget::imgProc();
114~118将阵列储存至txt档
124行 将阵列存成bmp档
结果不论是图档或是txt档,都为全黑和全0
但假如我将imgProc内执行的东西,移到creatFlist()中
例如我将111行改成
for(int i=0; i<(int)(width*height); i++)
img_dst[i]=(unsigned char)255;
直接执行,不要透过imgProc()这个function去间接执行,
则bmp档成功变全白、txt也是全为255,
我第一次写c++使用class,
是不是哪里没注意呢?
为什麽在别的function中修改阵列都无法改值
P.S. 我确定imgProc()有被执行到,因为imgProc()一执行
我先让Label显示我要的字串,是有显示的!!!
(以前写都是C)
拜托各位了,若太混乱,或是不懂我在问甚麽,
请跟我说,我重新整理文章流程,让各位好阅读!!
感谢大家
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.163.54.15
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1499829548.A.8E9.html
1F:→ uranusjr: 懒得看程式先回根本问题, Qt Creator 可以改执行目录 07/12 12:02
感谢!!!!!!!
终於可以Debug了
※ 编辑: DirKai (118.163.54.15), 07/12/2017 15:41:54
3F:推 Raymond0710: 用this->imgProc()或 imgProc() 07/12 20:34