msmakprj.cpp
来自「一个完整的编辑器的代码(很值得参考」· C++ 代码 · 共 81 行
CPP
81 行
#include "stdafx.h"
#include "editcmd.h"
#include "resource.h"
#include "msmakprj.h"
#include "filesup.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#pragma warning ( disable : 4711 )
/////////////////////////////////////////////////////////////////////////////
IMPLEMENT_DYNAMIC (CMsMakProject, CProject)
CMsMakProject::CMsMakProject ()
{
}
bool freadln (FILE *fp, LPTSTR pszLine, size_t nSize);
#define SOURCE _T ("SOURCE=")
#define SOURCE_LEN 7
bool CMsMakProject::Open (LPCTSTR pszPath)
{
CWaitCursor wait;
if (!FileExist (pszPath))
return false;
FILE *fp = _tfopen (pszPath, _T ("rt"));
if (!fp)
return false;
TCHAR szLine[256], *pszLine;
int nLine;
bool bEoln;
CProjectItem *pNew;
do
{
_fgetts (szLine, sizeof (szLine), fp);
nLine = _tcslen (szLine);
bEoln = szLine[nLine - 1] == _T ('\n');
if (bEoln)
szLine[nLine-- - 1] = _T ('\0');
if (!_tcsnicmp (szLine, SOURCE, SOURCE_LEN))
{
pNew = new CProjectItem;
szLine[nLine - 1] = _T ('\0');
pszLine = szLine + SOURCE_LEN;
pszLine = _tcsncmp (pszLine, _T (".\\"), 2) ? pszLine : pszLine + 2;
pNew->sPath = pszLine;
pNew->sMidPath = _T ("");
pNew->dwType = PI_FILE|PI_ROOT;
lstItems.AddTail (pNew);
}
if (!bEoln && !freadln (fp, szLine, sizeof (szLine)) || feof (fp))
break;
}
while (!feof (fp));
fclose (fp);
sPath = pszPath;
return true;
}
bool CMsMakProject::Save (LPCTSTR pszPath)
{
AfxMessageBox (_T ("Not implemented yet."));
return false;
}
/////////////////////////////////////////////////////////////////////////////
#pragma warning ( default : 4711 )
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?