b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

WritePrivateProfileString与GetPrivateProfileString用法与区

电脑杂谈  发布时间:2016-05-30 13:00:53  来源:网络整理

你是否正在寻找关于writeprivateprofilestring的内容?让我把最权威的东西奉献给你:

从字面上来说:Write表示写,Get表示获取

------------------以.ini后缀名为例,其它没试过,有兴趣可试

WritePrivateProfileString与GetPrivateProfileString用法与区


先创建一个win32控制台应用程序(支持MFC功能的那个),源代码如下:

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{//第1步:将当前的所获得的IP,写入.ini文件
CString strName="192.168.0.111";
::writeprivateprofilestring("StudentInfo","Name",strName,"C:\\Documents and Settings\\Administrator\\桌面");
//注意:在VC源代码中,如果放在工程目录下的Debug文件目录下,会报错(即后面GetPrivateProfileString函数会得不到ip地址,显示结果为默认IP:127.0.0.1)
//第2步:从.ini文件中读取所获得的IP
char ip[16];
::GetPrivateProfileString("StudentInfo","Name","127.0.0.1",ip,sizeof(ip),".\\server.ini");
//第3步:用AfxMessageBox显示读出的IP
AfxMessageBox(ip);
return 0;
}

----------------->以下是第2次用.正式用的,所以了解的比上次更详细

获得IP与端口号的操作步骤(地址是放在桌面上的.当然用.\\server.ini也可行,推荐用指定地址)

UINT uPort;
uPort=::GetPrivateProfileInt("IPInfo","port",6666,"C:\\Documents and Settings\\Administrator\\桌面");
CString str;char ip[16];
// str=".\\server.ini";(LPCTSTR)str
::GetPrivateProfileString("IPInfo","IP","127.0.0.1",ip,sizeof(ip),"C:\\Documents and Settings\\Administrator\\桌面");

SetDlgItemInt(IDC_EDIT_PORT,uPort);
SetDlgItemText(IDC_COMBO_IP,_T(ip));

------------上面改对话框上默认IP与端口的,下面是改accept中的

/////////////////第4步:接受套接字:添加了IP与端口的信息///////////////////////
SOCKADDR_IN clientaddr;
int len=sizeof(SOCKADDR);
char ip[20];
UINT port;
CString str;
// if((client=accept(server,0,0))!=INVALID_SOCKET )//默认不接受IP与端口等信息的情况下
if((client=accept(server,(SOCKADDR*)&clientaddr,&len))!=INVALID_SOCKET )//接受IP与端口信息
{
strcpy(ip,inet_ntoa(clientaddr.sin_addr));
port=ntohs(clientaddr.sin_port);str.Format("%d",port);

::writeprivateprofilestring("IPInfo","IP地址",ip,"C:\\Documents and Settings\\Administrator\\桌面");
::writeprivateprofilestring("IPInfo","port",str,"C:\\Documents and Settings\\Administrator\\桌面");

// str.Format("IP地址: %s:%d",ip,port);
// AfxMessageBox(str);

CreateThread(0,0,SLisen,this,0,0); //this代表是对话框的类,警记:不要用(LPVOID)client,会出错,这不是DOS下
}
---------------------下面摘自网上的解释资料,当然MSDN中也有-----------------------

---------------GetPrivateProfileString----------------------

函数返回为string的长度(long型),而从ini文件获得的字符串则保留在目的缓冲器中

DWORD GetPrivateProfileString(
LPCTSTR lpAppName, //配置文件的section名
LPCTSTR lpKeyName, //配置文件的key名
LPCTSTR lpDefault,
LPTSTR lpReturnedString,
DWORD nSize,
LPCTSTR lpFileName
);

其中各参数的意义:

前二个参数与 writeprivateprofilestring中的意义一样.

lpDefault : 如果INI文件中没有前两个参数指定的字段名或键名,则将此赋给变量.

lpReturnedString : 接收INI文件中的的CString对象,即目的缓存器.

nSize : 目的缓存器的大小.

lpFileName : 是完整的INI文件名.

lpApplicationName String,欲在其中查找条目的小节名称。这个字串不区分大小写。如设为vbNullString,就在lpReturnedString缓冲区内装载这个ini文件所有小节的列表

lpKeyName String,欲获取的项名或条目名。这个字串不区分大小写,。如设为vbNullString,就在lpReturnedString缓冲区内装载指定小节所有项的列表

lpDefault String,指定的条目没有找到时返回的默认。可设为空("")

lpReturnedString String,指定一个字串缓冲区,长度至少为nSize

nSize Long,指定装载到lpReturnedString缓冲区的最大字符数量

lpFileName String,初始化文件的名字。如没有指定一个完整路径名,windows就在Windows目录中查找文件

---------------writeprivateprofilestring----------------------

1.所用的WINAPI函数原型为:

BOOL writeprivateprofilestring(

LPCTSTR lpAppName,

LPCTSTR lpKeyName,

LPCTSTR lpString,

LPCTSTR lpFileName

);

其中各参数的意义

LPCTSTR lpAppName 是INI文件中的一个字段名.

LPCTSTR lpKeyName 是lpAppName下的一个键名,通俗讲就是变量名.

LPCTSTR lpString 是键,也就是变量的,不过必须为LPCTSTR型或CString型的.

LPCTSTR lpFileName 是完整的INI文件名.

以上就是关于writeprivateprofilestring的全部内容,相信你一定会非常满意。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shenmilingyu/article-6885-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...