char s[280];
::GetWindowText(hWnd,s,sizeof(s));
cation.Format("HWND: %lX\tCaption: %s",hWnd,s);
MessageBox(cation);
::GetCurrentDirectory(sizeof(s),s);
cation.Format("tCaption: %s",s);
MessageBox(cation);
::GetWindowText(hWnd,s,sizeof(s));
cation.Format("HWND: %lX\tCaption: %s",hWnd,s);
MessageBox(cation);
::GetCurrentDirectory(sizeof(s),s);
cation.Format("tCaption: %s",s);
MessageBox(cation);
解决方案 »
- 到此一游
- 接收到文件后,不弹出保存对话框,直接存储到D盘跟目录
- Help!如何平滑控制系统音量?
- 怎样实现 AVI动画 的鼠标光标????
- 哪位大侠有泄漏的windows源码?能否提供一份?愿意出钱购买。若有,请留下您的邮件地址,万分感谢!还有,我在深圳!
- completion port 问题(1)
- 简单的问题
- 如何使自己的程序集成 "Windows 身份认证" 象 SQL Server 那样
- 是不是关于GDI双缓冲绘图的DC问题导致最大化之后显示不完整
- 请问高手如何才能修改d3d9.dll的Direct3DCreate9接口
- 串行通信中,用VC++如何编写CRC校验码?
- 系统无法开始服务器进程的问题?
但不知哪位能否解释一下::GetCurrentDirectory(MAX_PATH, m_PrjPath.GetBuffer(MAX_PATH)); 的结果为什么不对吗?就是说为什么不能分配到新的内存空间。
我习惯了Delphi中的String,所以对CString的奇怪和字符串连接后的莫名其妙性觉得他真的很复杂,虽然不过是个字符串操作而已。
::GetCurrentDirectory(MAX_PATH, m_PrjPath.GetBuffer(MAX_PATH));
...
m_PrjPath.ReleaseBuffer(); 这样是可以得到结果的啊。事实上,_T("")是为了表示宽字节(Unicode用).你的问题可能是其他原因导致错误。而_T("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")这样是完全没有必要的。是否自己定义了MAX_PATH??(很可能MAX_PATH == 0)
用ddong(冬冬)的说的函数,是解决了分配空间的问题。
但是新的问题又来了,与我开始给他多分配空间的结果一样,下面汉操作:
AfxMessageBox("<" + ProgCrntPath + "\\>");
只能显示“< C:\VC\MyProg”然后就不了了之,这就是我常碰到的字符串的连接不一定能得到预想的结果,为什么?
解答后,问题我再多加分。
我也试了一下,可以得到结果的。
问题肯定不在这里。或者你MAX_PATH不够长,或者你用其他的指针改变了它的内容。
我真的快没办法了, "AAAA" + "BBBBB"的的确确结果是"AAAA",为什么?为什么??为什么???
谁知道CString + CString 是怎么工作的??包括内存的释放与分配,结果指针。用它写程序真的比汇编还烦。 :(
如果还不行,没有办法,我只好用Delphi把程序重写一遍,那样都比我在这里调试VC来的快!!
以前,我为了得到 String1 + String2 的值,一定要这么写 String3 = String1 + String2;
这样就能得到正确结果吗??不一定能,有时候结果是对的,有时候却是错的,我不知为什么,如何解决,本人用了世界上最最愚蠢的方法,先把String3清空,那么结果就是对的,至少我还没碰到错误。所以就成了:
String3 = "";
String3 = String1 + String2;平时:我只要写做:String1 := String1 + String2; 就可以了,但我在VC中重来都不敢这么去尝试,我的结论是:
如果你想让自己早死几年,用VC吧!年纪轻轻来个时髦的“过劳死”;不死也要进精神病医院。
VC还是要好好学的,只是任务一急,我就没有时间考究这些问题,所以,就使用Delphi。
用VC,要学的东西真的很多!!!