沉重的反思:我的VC情结 暨 贴出处女作源码请求斧正

dot_net 2003-03-03 05:25:12
99年7月份毕业的,没有多久就是四年了。记得那天同学和我说:他们公司的项目经理都是96的师弟。他们在公司将比较久,比较稳定。我陷入了沉思:我在上海跳槽已经三次,都是为了什么?
我这个非计算机毕业的学生,毕业却找了一个程序员的工作。写了几个月无厘头的VC代码之后,我被安排到新的部门,用VB+ACCESS编写管理软件。软件实施以后,面对这个自己看了难受的处女作,想着自己钟爱的VC,我决定离开这个像敬老院一样的公司。阴差阳错,命运使然,我在南京找到了一家上海的公司。2000/12/04的晚上,我背着一个包,来到了上海。在公司用了三个月的代码生成器之后,我有点害怕:自己还没有真正的写过代码。我想找VC的工作,可是事实证明我不行。为了生活,或者说是生存,为了让自己能够有一技之长,我到一家公司作管理软件,用VB+MS SQL Server。整整一年的时间,我成长为一个优秀的VB代码编写人员,一个熟悉MS SQL Server的程序员,一个能根据总体设计,进行模块详细设计,并能进行编码测试的VB高级程序员,一个熟悉了解项目开发过程和管理的IT工程师。然而,我一直在寻求VC开发的工作,只是苦苦没有机会。公司的待遇使我被迫辞职。
利用公司招聘上的漏洞,自己有说谎,我如愿来到一家公司研发部的C/C++开发组,经历了一段时间的迷茫、害怕和努力之后,我被公司抽调到客户处编写一个软件。一切都要重0开始。经过一个月的努力,我将Beta版交给了用户,在这里打这片文章,静静的等待用户的宣判。
我是不是太傻?
...全文
32 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
demetry 2003-03-04
  • 打赏
  • 举报
回复
楼主的代码不是“加锁/解锁”,就是“断开/连接”,看来代码中包含着人世间的沧桑!
hbb1981 2003-03-03
  • 打赏
  • 举报
回复
我觉得执着追求自己想要追求的东西是一个程序员所应具备的基本素质!!
白驼山宋兵甲 2003-03-03
  • 打赏
  • 举报
回复
很不错啊!
pandix 2003-03-03
  • 打赏
  • 举报
回复
祝楼主好运
明天去抢劫 2003-03-03
  • 打赏
  • 举报
回复
如果这毕子能精VC也不枉来这世界一趟。

祝楼主成功
akiy 2003-03-03
  • 打赏
  • 举报
回复
混口饭吃不要那么执著吧!
lonkil 2003-03-03
  • 打赏
  • 举报
回复
楼主,现在的市场行情,VC不好混了?那我还拼命学个了,有什么意思?郁闷啊^^
yifeng_ch 2003-03-03
  • 打赏
  • 举报
回复
世上无难事只怕有心人。
zhenxizhou 2003-03-03
  • 打赏
  • 举报
回复
Good luck
loopyifly 2003-03-03
  • 打赏
  • 举报
回复
为楼主孜孜不倦的追求vc所感动!

up and good luck!
sayo 2003-03-03
  • 打赏
  • 举报
回复
痛并快乐着
E17 2003-03-03
  • 打赏
  • 举报
回复
祝你成功!
dot_net 2003-03-03
  • 打赏
  • 举报
回复
/从内存缓冲区读取数据,并更新内存缓冲区,要加锁,解锁内存
void CTTYView::TTYGetDataFromMen(char cFindChar)
{
char * lpBufTmp;
char * lpBufDest;
int iPos = 0;
int iPosStr = 0;

while(1)
{
//找到Part结束标志
lpBufDest = (char*)memchr(m_lpBuf, cFindChar, m_lBufLength);
iPos = lpBufDest - m_lpBuf;
if(iPos<0)//没有找到,则退出
break;
m_lBufLength -= iPos + 1;
lpBufTmp = new char[iPos+1];
EnterCriticalSection(&m_csTTYLock);
memcpy(lpBufTmp, m_lpBuf, iPos+1);
m_strPart = _T("");
TTYGetStringFromMem(lpBufTmp, iPos+1, m_strPart);

iPosStr = m_strPart.Find(m_cfgData.m_strPromptsSwitch);
if(iPosStr != -1)
m_strPart = m_strPart.Left(iPosStr);
TTYAddDataToEdit(m_strPart, TRUE);
delete []lpBufTmp;

lpBufTmp = new char[m_lBufLength];
memcpy(lpBufTmp, m_lpBuf + iPos + 1, m_lBufLength);
delete []m_lpBuf;

m_lpBuf = new char[m_lBufLength];
memcpy(m_lpBuf, lpBufTmp, m_lBufLength);
delete []lpBufTmp;

m_iPartCount ++;

LeaveCriticalSection(&m_csTTYLock);

}

}
dot_net 2003-03-03
  • 打赏
  • 举报
回复
//该函数由CClientSocket的虚函数OnReceive()调用,作用是:
//根据不同的情况,将接收到的数据写(追加)入内存缓冲区,并做相应的处理
void CTTYView::TTYGetInfoReceived(CClientSocket *pClientSocket)
{

CString strCmd = _T("");
CString strTmp = _T("");
int iRead = 0;
int iPos = 0;
char lpBuf[0x1000];
char * lpBufTmp;

//Sleep(m_cfgData.m_iDelayTime);

memset(lpBuf, 0, 0x1000);
if(!TTYReadSocket(pClientSocket, lpBuf, iRead))
{
}
else
{
//更新内存缓冲区
///先将缓冲区的数据转入临时缓冲
EnterCriticalSection(&m_csTTYLock);
if(m_lBufLength != 0)
{
lpBufTmp = new char[m_lBufLength];
memset(lpBufTmp, 0, m_lBufLength);
memcpy(lpBufTmp, m_lpBuf, m_lBufLength);
delete []m_lpBuf;
}
///重新更新缓冲区
m_lpBuf = new char[m_lBufLength + iRead];
if(m_lBufLength != 0)
{
memcpy(m_lpBuf, lpBufTmp, m_lBufLength);
delete []lpBufTmp;
}
memcpy(m_lpBuf + m_lBufLength, lpBuf, iRead);
m_lBufLength += iRead;
LeaveCriticalSection(&m_csTTYLock);

//根据不同的情况,做相应的处理
switch(m_iStep)
{
case TTY_UNCONNECTED://断开连接
break;
case TTY_CONNECT://启动连接
break;
...//此处略去
case TTY_DISPL_RCBLK:
//如果命令执行成功
if(TTYGetStringFromMem(m_lpBuf, m_lBufLength, strCmd))
{
if(strCmd.Find(m_cfgData.m_strPromptsSwitch) != -1)
{
m_iStep = TTY_GET_FILE;
strCmd = _T("getfile:\"") + m_cfgData.m_strWorkDir + _T("/") +
m_strResultFileName + _T("\";");
TTYUpdateLogFile(strCmd);
TTYSendData(pClientSocket, strCmd);
}
TTYGetDataFromMen();
}
break;
case TTY_GRT_FILE://获取结果文件;
if(TTYGetStringFromMem(m_lpBuf, m_lBufLength, strCmd))
{
if(strCmd.Find(m_cfgData.m_strPromptsSwitch) != -1)
{
TTYGetDataFromMen(m_cFindChar);
}
}
break;
case TTY_ESS_CODE://执行交换机指令
//重内存缓冲中读取数据,并更新内存缓冲
TTYGetDataFromMen();
if(1)// m_iPartCount > == m_iParts )
{
//接收完毕,发送下一个命令
Sleep(m_cfgData.m_iDelayTime);
TTYSendEssCode();
}
break;
default:
TTYReleaseMemory();
}
}
}

16,472

社区成员

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

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

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