我用的很好。
void CCounterExtension::Default(CHttpServerContext* pCtxt)
{
static unsigned int count=0;
CString s;
GetPrivateProfileString("ISAPI_Counter", "Visits", "0", s.GetBuffer(NUM), NUM, "/Counter.dat");
s.ReleaseBuffer(); count=atol(s);
StartContent(pCtxt);
WriteTitle(pCtxt); s.Format("%u", ++count);
CString visits="<div align=\"center\">";
for( int n=NUM, m=0; n>0; n-- )
{
if( n>s.GetLength() )
visits += "<img src=\"img/num0.gif\">";
else
visits = visits + "<img src=\"img/num" + s[m++] + ".gif\">";
}
visits += "</div>"; *pCtxt << visits; WritePrivateProfileString("ISAPI_Counter", "HeadInfo", "tlovexyj", "/Counter.dat");
WritePrivateProfileString("ISAPI_Counter", "Visits", s, "/Counter.dat"); EndContent(pCtxt);
}
void CCounterExtension::Default(CHttpServerContext* pCtxt)
{
static unsigned int count=0;
CString s;
GetPrivateProfileString("ISAPI_Counter", "Visits", "0", s.GetBuffer(NUM), NUM, "/Counter.dat");
s.ReleaseBuffer(); count=atol(s);
StartContent(pCtxt);
WriteTitle(pCtxt); s.Format("%u", ++count);
CString visits="<div align=\"center\">";
for( int n=NUM, m=0; n>0; n-- )
{
if( n>s.GetLength() )
visits += "<img src=\"img/num0.gif\">";
else
visits = visits + "<img src=\"img/num" + s[m++] + ".gif\">";
}
visits += "</div>"; *pCtxt << visits; WritePrivateProfileString("ISAPI_Counter", "HeadInfo", "tlovexyj", "/Counter.dat");
WritePrivateProfileString("ISAPI_Counter", "Visits", s, "/Counter.dat"); EndContent(pCtxt);
}
解决方案 »
- 有没有模拟'系统从磁盘载入并执行可执行文件的方法
- struct中CArray成员添加值的问题
- 关于CSplitterWnd的一个问题,急!
- 如何朝其它程序一个有输入焦点的编辑控件输入中文字串?
- 对内置MODEM和外置MODEM的编程方法相同吗?
- 那位大侠有vc操作execel的例子?
- 懂网络编程的帮俺回一下,如何修改本机的IP(在局域网中),都用到哪些函数?
- 发现MFC的一个bug大家快来看啊!!!!
- 倾家荡产贴
- 在文件对话框中,如何获取选中某文件的消息?
- 如何设置Windows sockets超时值?
- 小弟近日用mfc开发socket网络通讯,资料奇缺,又找不到什么好书,请各位大虾提点意见!
你用的是GetPrivateProfileString函数
跟我的不一样
但现在对于每一个CTryTry类的对象或者指针都需要从文件里读取数据
如果另外编写一个函数的话,那对象或者指针新建的时候都需要调用那个函数了
因为把对象放在CTryApp中的话,可以到处调用,比较容易。
现在我想知道为什么会出错,以及有没有别的好的代替方法。
LPCTSTR lpAppName, // address of section name
LPCTSTR lpKeyName, // address of key name
LPCTSTR lpDefault, // address of default string
LPTSTR lpReturnedString, // address of destination buffer
DWORD nSize // size of destination buffer
);
LPCTSTR lpAppName, // address of section name
LPCTSTR lpKeyName, // address of key name
LPCTSTR lpDefault, // address of default string
LPTSTR lpReturnedString, // address of destination buffer
DWORD nSize // size of destination buffer
);
你用的跟我用的还是有区别的,你的是读取win.ini文件里的信息
我的是读取对应于我的执行文件名的ini文件里的信息的。
这是CWinApp的一个函数。
从整个流程来看,我也觉得是CWinApp对象还没构造完成
就开始调用CWinApp的函数了
现在我有的解决办法
一,用指针,不用对象
二,采用两个构造函数,另外需要一个函数
不知道还有没有别的办法了?
CString str = pApp->GetProfileString("Section" , "Key" , "Default") ;之前加上strcpy(m_pszProfileName,szIniPathandFileName);
其中的szIniPathandFileName是你的ini文件的路徑加文件名﹐試試看﹗:)