摘要:
我们的项目是用DotNet实现Socket连接,用多线程处理多用户。我就谈一下在实现过程中遇到的问题。下面是我服务器的简化实现。 private Socket clientSocket; public void Start() { Thread thread=new Thread(new ThreadStart(MainService)); thread.Start(); } v... 阅读全文
摘要:
打印基本流程 有了前面的知识,现在我们就可以打印了。Windows打印是有着固定的流程的,流程也比较简单。按照固定的顺序调用打印API即可:StartDoc() -> StartPage() -> 打印具体内容 -> EndPage() -> EndDoc()。如果要打印多页,循环StartPage()至EndPage()即可。 示例代码: DOCINFO doc; Zer... 阅读全文
摘要:
前段时间需要将日志信息通过打印机打印出来。 总结了一下其中的一些用法: 1:用CPrintDialog 可以呼出窗口让用户选择打印机或者采用默认的打印机直接打印。 StartPage…..EndPage 完成一页文档的打印。 如需改变DC设置,需要调用ReSetDC() 多次调用这两个函数,可以实现打印多页 2:TextOut坐标的确定。 TextOut中的坐标是DC中的... 阅读全文
摘要:
对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class,但是它的使用似乎并不广泛,而且它也不能解决所有的问题;Garbage Collection技术在Java中已经比较成熟... 阅读全文
摘要:
CString位于头文件afx.h中。 CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。不管怎样,使用CString有很多特殊的技巧,特别是对于纯C背景下走出来的程序员来说有点难以学习。这篇文章就来讨论这些技巧。 使用CString可以让你对字符串的操作更加直截了当。这篇文章不是CString的完全手册,但囊括了大部分... 阅读全文
摘要:
前天同事问我在CFileDialog中多选时按确定按钮后DoModal函数的返回值是IDCANCEL。我说不太可能吧。他的代码大致如下: static TCHAR BASED_CODE szFilter[] = _T("TXT(*.txt)|*.txt||"); CFileDialog dlg(TRUE,_T("txt"), NULL,OFN_HIDEREADONLY|OFN_ALLOWMUL... 阅读全文