檔案名100.hea
檔案內容:
100 2 360 650000
100.dat 212 200 11 1024 995 -22131 0 MLII
100.dat 212 200 11 1024 1011 20052 0 V5
# 69 M 1085 1629 x1
# Aldomet, Inderal
除了系統生成的代碼以外我添加的代碼如下
BOOL CECG2Doc::OnOpenDocument(LPCTSTR lpszPathName)
{
if (!CDocument::OnOpenDocument(lpszPathName))
return FALSE;
// TODO: 在此添加您專用的創建代碼
CFile hfile;
CString info[25];
CString tempinfo;
int m = 0;
hfile.Open(_T("C:\Users\Desktop\100.hea"),CFile::modeRead);
char pbuf[500];
hfile.Read(pbuf,sizeof(pbuf));
char *hp;
hp = &pbuf[0];
for (int k = 0;k<=sizeof(pbuf);k++)
{
if (m == 25)
{
break;
}
if ((int)*hp == 10||(int)*hp == 13)
{
hp++;
}
if (*hp != ' '&&(int)*hp != 10&&(int)*hp != 13)
{
tempinfo = tempinfo + (CString)(*hp);
}
else
{
info[m] = tempinfo; //把讀取出的資訊存放到陣列中
tempinfo = "";
m++;
}
hp++;
}
m_case.m_ID = info[0];//把病歷資訊存放到結構體中
m_case.m_dao0 = info[12];
m_case.m_dao1 = info[21];
m_case.m_Name = info[13];
if (info[24] == "F")
{
m_case.m_Sex = "女";
}
else
{
m_case.m_Sex = "男";
}
m_case.m_Age = info[23];
hfile.Close ();
return TRUE;
}
在stafx.h中的宣告
struct {//宣告結構體m_case
CString m_ID;
CString m_dao0;
CString m_dao1;
CString m_Name;
CString m_Sex;
CString m_Age;
}m_case;
程式報錯如下 :
第一個錯出在hfile.Open(_T("C:\Users\Desktop\100.hea"),CFile::modeRead);
1>c:\users\documents\visual studio 2010\projects\ecg2\ecg2\ecg2doc.cpp(150): warning C4129: “: 不可識別的字符轉義序列
1>c:\users\documents\visual studio 2010\projects\ecg2\ecg2\ecg2doc.cpp(150): warning C4129: “D”: 不可識別的字符轉義序列
第二個錯出在
1>stdafx.obj : error LNK2005: "struct <unnamed-type-m_case> m_case" (?m_case@@3U<unnamed-type-m_case>@@A) 已經在 ECG2Doc.obj 中定義
1>C:\Users\Documents\Visual Studio 2010\Projects\ECG2\Debug\ECG2.exe : fatal error LNK1169: 找到一個或多個多重定義的符號
uj5u.com熱心網友回復:
hfile.Open(_T("C:\Users\Desktop\100.hea"),CFile::modeRead);uj5u.com熱心網友回復:
hfile.Open(_T("C:\Users\Desktop\100.hea"),CFile::modeRead); 這行代碼有問題,雙引號里的\應該改為\\即hfile.Open(_T("C:\\Users\\Desktop\\100.hea"),CFile::modeRead);
uj5u.com熱心網友回復:
\表示轉義 \\ 才表示反斜杠頭檔案中加
#pragma once
uj5u.com熱心網友回復:
頭檔案中有#pragma once,還是報錯多重定義
uj5u.com熱心網友回復:
頭檔案中 使用 extern 宣告物體寫在 .c 或 .cpp中
uj5u.com熱心網友回復:
大神,我想在視圖視窗顯示出來成員變數的值,比如我上面代碼中的m_Age的值,該怎么做呢?是在OnDraw里寫嗎?TextOut是寫常量的不能寫變數嗎?求解釋稍微詳細一點
uj5u.com熱心網友回復:
.htypedef struct _tagMCaset_t
{
CString m_ID;
CString m_dao0;
CString m_dao1;
CString m_Name;
CString m_Sex;
CString m_Age;
}MCASE, *LPMCASE;
extern MCASE m_Case;
.cpp
MCASE m_Case;
uj5u.com熱心網友回復:
大神,這個明白了。我問了另一個問題,麻煩你看一下可以嗎
uj5u.com熱心網友回復:
int m_Age;Cstring strAge;
strAge.Format('Age='%d",m_Age);
pDC->TextOut (0,0,strAge);
uj5u.com熱心網友回復:
我把m_Age定義的就是Cstring,這樣是不是只需pDC->TextOut (0,0,m_Age)呢?但是我只寫這句程式報錯說m_Age未宣告,但是我已經在stdafx.h寫了
typedef struct _tagMCaset_t
{
CString m_ID;
CString m_dao0;
CString m_dao1;
CString m_Name;
CString m_Sex;
CString m_Age;
}MCASE, *LPMCASE;
extern MCASE m_Case;
在Doc.cpp和View.cpp中寫了
MCASE m_Case;
uj5u.com熱心網友回復:
pDC->TextOut (0,0,m_Case.m_Age);// 必須要 物件 m_Case轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/115467.html
標籤:基礎類
