<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C/C++/VC</title><link>http://blog.vckbase.com/leoyin/category/62.html</link><description>C/C++/VC</description><managingEditor>Leoyin--之大隐隐于市</managingEditor><dc:language>zh-chs</dc:language><generator>.Text Version 0.958.2004.214</generator><item><dc:creator>Leoyin--之大隐隐于市</dc:creator><title>使对话框透明</title><link>http://blog.vckbase.com/leoyin/articles/269.html</link><pubDate>Mon, 24 May 2004 20:44:00 GMT</pubDate><guid>http://blog.vckbase.com/leoyin/articles/269.html</guid><wfw:comment>http://blog.vckbase.com/leoyin/comments/269.html</wfw:comment><comments>http://blog.vckbase.com/leoyin/articles/269.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://blog.vckbase.com/leoyin/comments/commentRss/269.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/leoyin/services/trackbacks/269.html</trackback:ping><description>&lt;BR&gt;OnInitDialog()&lt;BR&gt;{&lt;BR&gt;........................................................&lt;BR&gt;&amp;nbsp;SetWindowLong(this-&amp;gt;GetSafeHwnd(),GWL_EXSTYLE,&lt;BR&gt;&amp;nbsp;GetWindowLong(this-&amp;gt;GetSafeHwnd(),GWL_EXSTYLE)^0x80000);&lt;BR&gt;&amp;nbsp;HINSTANCE hInst = LoadLibrary("User32.DLL"); &lt;BR&gt;&amp;nbsp;if(hInst) &lt;BR&gt;&amp;nbsp;{ &lt;BR&gt;&amp;nbsp;&amp;nbsp;typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD); &lt;BR&gt;&amp;nbsp;&amp;nbsp;MYFUNC fun = NULL;&lt;BR&gt;&amp;nbsp;&amp;nbsp;//取得SetLayeredWindowAttributes函数指针 &lt;BR&gt;&amp;nbsp;&amp;nbsp;fun=(MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes");&lt;BR&gt;&amp;nbsp;&amp;nbsp;if(fun)fun(this-&amp;gt;GetSafeHwnd(),0,128,2); &lt;BR&gt;&amp;nbsp;&amp;nbsp;FreeLibrary(hInst); &lt;BR&gt;&amp;nbsp;}&lt;BR&gt;...........................................................&lt;BR&gt;}&lt;img src ="http://blog.vckbase.com/leoyin/aggbug/269.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Leoyin--之大隐隐于市</dc:creator><title>配合QQWry.dat使用可以成为一个本机的IP数据库</title><link>http://blog.vckbase.com/leoyin/articles/266.html</link><pubDate>Mon, 24 May 2004 20:21:00 GMT</pubDate><guid>http://blog.vckbase.com/leoyin/articles/266.html</guid><wfw:comment>http://blog.vckbase.com/leoyin/comments/266.html</wfw:comment><comments>http://blog.vckbase.com/leoyin/articles/266.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.vckbase.com/leoyin/comments/commentRss/266.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/leoyin/services/trackbacks/266.html</trackback:ping><description>&lt;P&gt;//新格式. 请尊重原作者的劳动, 不要将IP数据库用于商业用途.&lt;/P&gt;
&lt;P&gt;#define BYTE3INT(X)&amp;nbsp; (&amp;nbsp;&amp;nbsp;&amp;nbsp; ( X[0] &amp;amp; 0x000000FF ) \&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | ( ( X[1] &amp;amp; 0x000000FF ) &amp;lt;&amp;lt;&amp;nbsp; 8 ) \&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | ( ( X[2] &amp;amp; 0x000000FF ) &amp;lt;&amp;lt; 16 )&amp;nbsp; )&lt;/P&gt;
&lt;P&gt;#define BYTE4INT(X)&amp;nbsp; (&amp;nbsp;&amp;nbsp;&amp;nbsp; ( X[0] &amp;amp; 0x000000FF ) \&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | ( ( X[1] &amp;amp; 0x000000FF ) &amp;lt;&amp;lt;&amp;nbsp; 8 ) \&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | ( ( X[2] &amp;amp; 0x000000FF ) &amp;lt;&amp;lt; 16 ) \&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | ( ( X[3] &amp;amp; 0x000000FF ) &amp;lt;&amp;lt; 24 )&amp;nbsp; )&lt;/P&gt;
&lt;P&gt;struct INDEXITEM &lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char ip[4];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char offset[3];&lt;BR&gt;};&lt;/P&gt;
&lt;P&gt;int LocalityFromIP2(CString&amp;amp; str)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //str 是类似 61.147.225.* 的数据，返回的具体地址仍在 str 中。两端没有空格。&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i = 0, j = str.GetLength(), k = 0, l, IP[4];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; const char* p = (LPCTSTR)str;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILE* ipfp = NULL;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CString ipstr;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for( i = 0; i &amp;lt; 4; i ++ )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * ( IP + i ) = -1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; i = j = k = 0;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for( ; k &amp;lt; 3; k ++ )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i = str.Find( '.', j );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( i == -1 )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipstr = str.Mid( j, i - j );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for( l = 0; l &amp;lt; i - j; l ++ )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (&amp;nbsp; ipstr[l] &amp;lt; '0' || ipstr[l] &amp;gt; '9' )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return -1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * ( IP + k ) = atoi((const char*)(LPCTSTR)ipstr);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; j = i + 1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for( i = 0; i &amp;lt; 3; i ++ )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( * ( IP + i ) == -1 )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return -1;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * ( IP + 3 ) = 5;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipfp = fopen("QQWRY.DAT", "rb");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( ipfp == NULL )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return -1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char pbuf[256] = {0};&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fseek(ipfp, 0, SEEK_SET);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;unsigned int indexHeadPos = 0;&lt;BR&gt;&amp;nbsp;unsigned int indexTailPos = 0;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;struct INDEXITEM target;&lt;BR&gt;&amp;nbsp;target.ip[0] = IP[3];&lt;BR&gt;&amp;nbsp;target.ip[1] = IP[2];&lt;BR&gt;&amp;nbsp;target.ip[2] = IP[1];&lt;BR&gt;&amp;nbsp;target.ip[3] = IP[0];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;fread(&amp;amp;indexHeadPos, sizeof(indexHeadPos), 1, ipfp);&lt;BR&gt;&amp;nbsp;fread(&amp;amp;indexTailPos, sizeof(indexTailPos), 1, ipfp);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;int amount = (indexTailPos - indexHeadPos)/sizeof(struct INDEXITEM);&lt;BR&gt;&amp;nbsp;struct INDEXITEM start = LookForIndexItem(&amp;amp;target, ipfp, indexHeadPos, amount);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;char result[255] = {0};&lt;BR&gt;&amp;nbsp;RetrieveContent(&amp;amp;start, target.ip, ipfp, result);&lt;BR&gt;&amp;nbsp;str = result;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fclose(ipfp);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;struct INDEXITEM LookForIndexItem(struct INDEXITEM* const pAimItem, &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILE* pFile, &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int indexBasePos, &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int indexAmount )&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; struct INDEXITEM tmp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i = 0;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int j = indexAmount;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int s = (int)sizeof(struct INDEXITEM);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ( i &amp;lt; j - 1 ) &lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int k = (int) (i+j)/2;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int offset = (int)( k * s );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fseek(pFile, indexBasePos+offset, SEEK_SET);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fread(&amp;amp;tmp, s, 1, pFile);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int c = Compare( tmp.ip, pAimItem-&amp;gt;ip );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( c &amp;gt; 0 )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; j = k;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if ( c &amp;lt; 0 )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i = k;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else &lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i = k;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; j = k;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fseek(pFile, indexBasePos+i*s, SEEK_SET);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fread(&amp;amp;tmp, s, 1, pFile);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return tmp;&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;int Compare(unsigned char pA[4], unsigned char pB[4])&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int a = BYTE4INT(pA);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int b = BYTE4INT(pB);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( a &amp;gt; b )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if ( a &amp;lt; b )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return -1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;void GetData(unsigned char* str, FILE* pFile, int max)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i = 0;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ( (*(str+i)=fgetc(pFile)) &amp;amp;&amp;amp; (i&amp;lt;(max-2)) )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i++;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str[i] = 0;&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;void RetrieveContent(struct INDEXITEM* const pIndexItem, &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char ip[4],&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILE* pFile, &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char* content )&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // to get the pos from the offset array&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; long tmp = 0;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char buf[80];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int pos = BYTE3INT(pIndexItem-&amp;gt;offset);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fseek(pFile, pos, SEEK_SET);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fread(buf, 4, 1, pFile);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( Compare(ip, buf) &amp;gt; 0 ) &lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strcat(content, "未知");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //printf("未知数据\n");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 获取资料&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fread(buf, 1, 1, pFile);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( buf[0] == 0x01 ) &lt;BR&gt;&amp;nbsp;{ // 国家地区均重复, 跳转至新地址&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fread(buf, 3, 1, pFile);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pos = BYTE3INT(buf);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fseek(pFile, pos, SEEK_SET);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fread(buf, 1, 1, pFile);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 获取国家&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( buf[0] == 0x02 ) &lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 获取国家偏移&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fread(buf, 3, 1, pFile);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 保存地区信息&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tmp = ftell(pFile);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pos = BYTE3INT(buf);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fseek(pFile, pos, SEEK_SET);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fread(buf, 1, 1, pFile);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( buf[0] == 0x01 || buf[0] == 0x02 ) &lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strcat(content, "未知");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( buf[0] )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GetData(buf+1, pFile, 40);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strcat(content, (char*)buf);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //printf("%s\t", buf);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 获取地区&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( tmp )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fseek(pFile, tmp, SEEK_SET);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fread(buf, 1, 1, pFile);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ( buf[0] == 0x02 ) &lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 获取地区偏移&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fread(buf, 3, 1, pFile);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pos = BYTE3INT(buf);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fseek(pFile, pos, SEEK_SET);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fread(buf, 1, 1, pFile);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( buf[0] == 0x01 || buf[0] == 0x02 ) &lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strcat(content, "未知");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( buf[0] )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GetData(buf+1, pFile, 40);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strcat(content, (char*)buf);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;BR&gt;}&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/leoyin/aggbug/266.html" width = "1" height = "1" /&gt;</description></item></channel></rss>