<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>肉丝的盘子</title><link>http://blog.vckbase.com/jackliu/</link><description>宜未雨而绸缪，毋临渴而掘井。</description><managingEditor>肉丝</managingEditor><dc:language>zh-CHS</dc:language><generator>.Text Version 0.958.2004.214</generator><item><dc:creator>肉丝</dc:creator><title>《Error while trying to run project: Unable to start debugging. 梆定句柄无效》解决办法</title><link>http://blog.vckbase.com/jackliu/archive/2007/09/03/29139.html</link><pubDate>Mon, 03 Sep 2007 14:41:00 GMT</pubDate><guid>http://blog.vckbase.com/jackliu/archive/2007/09/03/29139.html</guid><wfw:comment>http://blog.vckbase.com/jackliu/comments/29139.html</wfw:comment><comments>http://blog.vckbase.com/jackliu/archive/2007/09/03/29139.html#Feedback</comments><slash:comments>27</slash:comments><wfw:commentRss>http://blog.vckbase.com/jackliu/comments/commentRss/29139.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/jackliu/services/trackbacks/29139.html</trackback:ping><description>昨天我打开服务禁用了不常用的服务，终端服务（Terminal Service)。今天打开VS调试就出错，哈哈， 居然必须得开启终端服务。&lt;BR&gt;&lt;BR&gt;解决不能调试的办法：&lt;BR&gt;&lt;BR&gt;1. 将工程属性-&gt;Debug-&gt;Enable the Visual Studio hosting process前的选中标志去掉.&lt;BR&gt;2. 启动Terminal Services服务.&lt;img src ="http://blog.vckbase.com/jackliu/aggbug/29139.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>肉丝</dc:creator><title>ifstream打开中文路径的问题</title><link>http://blog.vckbase.com/jackliu/archive/2007/04/04/25238.html</link><pubDate>Wed, 04 Apr 2007 08:10:00 GMT</pubDate><guid>http://blog.vckbase.com/jackliu/archive/2007/04/04/25238.html</guid><wfw:comment>http://blog.vckbase.com/jackliu/comments/25238.html</wfw:comment><comments>http://blog.vckbase.com/jackliu/archive/2007/04/04/25238.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://blog.vckbase.com/jackliu/comments/commentRss/25238.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/jackliu/services/trackbacks/25238.html</trackback:ping><description>代码如下： （为了这个问题，在MSN上少打了一个\引来了。。。。。。，这个死失血^_^)&lt;BR&gt;&lt;BR&gt;此代码作用是按行读取一个文件&lt;BR&gt;&lt;BR&gt;#include &lt;fstream&gt;&lt;BR&gt;void test()&lt;BR&gt;{&lt;BR&gt;    std::ifstream file("c:\\我的中文目录\\test.txt");&lt;BR&gt;    if(!file.is_open())&lt;BR&gt;       return FALSE;&lt;BR&gt;  &lt;BR&gt;    while(file.good())&lt;BR&gt;   {&lt;BR&gt;&lt;BR&gt;         char buffer[1024];&lt;BR&gt;         file.getline(buffer, 1024);&lt;BR&gt;         &lt;BR&gt;   }    &lt;BR&gt;   file.close();&lt;BR&gt;&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;结果&lt;BR&gt;1.在VC6.0 中结果运行正常&lt;BR&gt;&lt;BR&gt;2.在VS .NET 2003 中(没有试过，估计也正常)&lt;BR&gt;&lt;BR&gt;3.在vs .net 2005中不正确啦, is_open返回为false了&lt;BR&gt;   原因：&lt;BR&gt;       跟踪代码发现_Fiopen用的是wchar_t( 我想可能是盖子不想在WIN98下运行了,所以全部支持NT,自然就是wchar_t类型了。)&lt;BR&gt;      /*&lt;BR&gt;         这段为盖子打开文件的源代码&lt;BR&gt;&lt;BR&gt;       _MRTIMP2_NCEEPURE FILE *__CLRCALL_PURE_OR_CDECL _Fiopen(const char *filename,&lt;BR&gt;	ios_base::openmode mode, int prot)&lt;BR&gt;	{	// open wide-named file with byte name&lt;BR&gt;	wchar_t wc_name[FILENAME_MAX];&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;	if (mbstowcs_s(NULL, wc_name, FILENAME_MAX, filename, FILENAME_MAX - 1) != 0)&lt;BR&gt;		return (0);&lt;BR&gt;	return _Fiopen(wc_name, mode, prot);&lt;BR&gt;	}&lt;BR&gt;     */&lt;BR&gt;     另mbstowcs_s读取的时候_LocaleUpdate.localeinfo (这个与下面要讲的那个函数有关)&lt;BR&gt;     &lt;BR&gt;  解决主法：&lt;BR&gt;  1.setlocale(LC_ALL, "");    设置一下就OK了 //C语言的&lt;BR&gt;  2.std::locale::global(std::locale("");        // 标准库&lt;BR&gt;&lt;BR&gt;结尾： STL真恼火， 兼容，BUG.(盖子的原因)&lt;BR&gt;&lt;BR&gt;&lt;img src ="http://blog.vckbase.com/jackliu/aggbug/25238.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>肉丝</dc:creator><title>WINDOWS NT服务的创建方法</title><link>http://blog.vckbase.com/jackliu/archive/2007/04/02/25204.html</link><pubDate>Mon, 02 Apr 2007 09:38:00 GMT</pubDate><guid>http://blog.vckbase.com/jackliu/archive/2007/04/02/25204.html</guid><wfw:comment>http://blog.vckbase.com/jackliu/comments/25204.html</wfw:comment><comments>http://blog.vckbase.com/jackliu/archive/2007/04/02/25204.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.vckbase.com/jackliu/comments/commentRss/25204.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/jackliu/services/trackbacks/25204.html</trackback:ping><description>以为以VC6.0开发工具为例,  .NET C++是一样的。&lt;BR&gt;可以使用控制台， WIN32,  ATL （.NET 的ATL用的模板，而VC6.0不是）。&lt;BR&gt;程序框架主要由两部分板成， 一个服务主函数（ServiceMain），另一个是用于服务管理控&lt;BR&gt;&lt;BR&gt;制用的（ServiceControlHandler）。&lt;BR&gt;一、步聚：&lt;BR&gt;1. 注册服务&lt;BR&gt;2.启动服务&lt;BR&gt;&lt;BR&gt;二、代码编写&lt;BR&gt;&lt;BR&gt;#include "windows.h"&lt;BR&gt;#include "winsvc.h"&lt;BR&gt;&lt;BR&gt;SERVER_STATUS g_ServiceStatus;  //用于存放当前服务状态, 启动， 停止， 恢复。。。&lt;BR&gt;&lt;BR&gt;。&lt;BR&gt;SERVICE_STATUS_HANDLER g_ServiceStatusHandler; //控制句柄&lt;BR&gt;&lt;BR&gt;void WINAPI ServiceMain(DWORD dwArgc, LPTSTR lpszArgv); //记住要加WINAPI， 为啥&lt;BR&gt;&lt;BR&gt;原因自己想喽&lt;BR&gt;void WINAPI ServiceControlHandler(DWORD dwOpcode); //状态控制&lt;BR&gt;void InstallService();&lt;BR&gt;void UnInstallService();&lt;BR&gt;&lt;BR&gt;int main()&lt;BR&gt;{&lt;BR&gt;    SERVICE_TABLE_ENTRY  DispatcherTable[] = {{_T("Your Server Name"), NULL}, &lt;BR&gt;&lt;BR&gt;{NULL, NULL}}; //为啥用两个，国际惯例哈。&lt;BR&gt;    StartServiceCtrlDispatcher(DispatcherTable);&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;void WINAPI ServiceMain(DWORD dwArgc, LPTSTR lpszArgv)&lt;BR&gt;{&lt;BR&gt;      g_ServiceStatus.dwCurrentState = SERVICE_START_PENDING; //启动状态&lt;BR&gt;      g_ServiceStatus.dwServiceType  = SERVICE_WIN32_OWN_PROCESS; //为啥用这个参&lt;BR&gt;&lt;BR&gt;数去看MSDN&lt;BR&gt;      g_ServiceStatus.dwControlsAccepted = SERVICE_ACCPET_STOP; //我仅接受停止， &lt;BR&gt;&lt;BR&gt;恢得，暂停自己加就行了&lt;BR&gt;      g_ServiceStatusHandler = RegisterServiceControlHandler(_T("Your Server &lt;BR&gt;&lt;BR&gt;Name"), ServiceControlHandler);//注册控制函数啦&lt;BR&gt;      if(g_ServiceStatusHandler == (SERVICE_STATUS_HANDLER) 0)&lt;BR&gt;            return;&lt;BR&gt;      g_ServicveStatus.dwServiceState = SERVICE_RUNNING; //置运行状态&lt;BR&gt;    &lt;BR&gt;    if(!SetServiceStatus(g_ServiceStatusHandler, &amp;g_ServiceStatus))&lt;BR&gt;          return;&lt;BR&gt;    //这里开始放置你的处理线程或代码了&lt;BR&gt;    .....&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;void WINAPI ServiceMain(DWORD dwOpcode)&lt;BR&gt;{&lt;BR&gt;     switch(Opcode)&lt;BR&gt;    {&lt;BR&gt;    case SERVICE_CONTROL_PAUSE:&lt;BR&gt;              g_ServiceStatus.dwCurrentState = SERVICE_PAUSED;&lt;BR&gt;              break;&lt;BR&gt;&lt;BR&gt;    case SERVICE_CONTROL_CONTINUE:&lt;BR&gt;             g_ServiceStatus.dwCurrentState = SERVICE_RUNNING;&lt;BR&gt;             g_bIsRunning = TRUE;&lt;BR&gt;             break;&lt;BR&gt;    case SERVICE_CONTROL_STOP:  //因为我只设了停止&lt;BR&gt;             g_ServiceStatus.dwWin32ExitCode = 0;&lt;BR&gt;             g_ServiceStatus.dwServiceSpecificExitCode = 0;&lt;BR&gt;             g_ServiceStatus.dwCurrentState = SERVICE_STOPPED;&lt;BR&gt;             SetServiceStatus(g_ServiceStatusHandler, &amp;g_ServiceStatus);&lt;BR&gt;             g_bIsRunning = FALSE;&lt;BR&gt;             break;&lt;BR&gt;    case SERVICE_CONTROL_INTERROGATE:&lt;BR&gt;             break;&lt;BR&gt;    }&lt;BR&gt;  &lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;//安装服务&lt;BR&gt;void InstallService()&lt;BR&gt;{ &lt;BR&gt;    TCHAR szDir[_MAX_PATH];&lt;BR&gt;    DWORD dwRet = GetModuleFileName(NULL, szDir, _MAX_PATH);&lt;BR&gt;    szDir[dwRet] = _T('\0');&lt;BR&gt;    SC_HANDLE hSCM, hService;&lt;BR&gt;    hSCM = ::OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);&lt;BR&gt;    if(!hSCM)&lt;BR&gt;        return; &lt;BR&gt;    hService = ::CreateService(hSCM,  _T("Your Service Name"),  _T("Your Service &lt;BR&gt;&lt;BR&gt;Name 描述"),&lt;BR&gt;        SERVICE_ALL_ACCESS,&lt;BR&gt;        SERVICE_WIN32_OWN_PROCESS,&lt;BR&gt;        SERVICE_AUTO_START,&lt;BR&gt;        SERVICE_ERROR_NORMAL,&lt;BR&gt;        szDir,&lt;BR&gt;        NULL,&lt;BR&gt;        NULL,&lt;BR&gt;        NULL,&lt;BR&gt;        NULL,&lt;BR&gt;        NULL);&lt;BR&gt;    if(!hService)&lt;BR&gt;        return;&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;//缺载服务&lt;BR&gt;void UnInstallService()&lt;BR&gt;{&lt;BR&gt;    SC_HANDLE hSCM, hService;&lt;BR&gt;    hSCM = ::OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);&lt;BR&gt;    if(!hSCM)&lt;BR&gt;        return;&lt;BR&gt;&lt;BR&gt;    hService = ::OpenService(hSCM,  _T(”Your Service Name"), &lt;BR&gt;&lt;BR&gt;SERVICE_ALL_ACCESS);&lt;BR&gt;    if(!hService)&lt;BR&gt;        return; &lt;BR&gt;    ::DeleteService(hService);&lt;BR&gt;    CloseServiceHandle(hService);&lt;BR&gt;&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;代码有通不过的地方，自己改哈， 有啥不正确之处欢迎各位指正。&lt;img src ="http://blog.vckbase.com/jackliu/aggbug/25204.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>肉丝</dc:creator><title>NOT IN 与NULL的比较</title><link>http://blog.vckbase.com/jackliu/archive/2007/03/30/25188.html</link><pubDate>Fri, 30 Mar 2007 15:07:00 GMT</pubDate><guid>http://blog.vckbase.com/jackliu/archive/2007/03/30/25188.html</guid><wfw:comment>http://blog.vckbase.com/jackliu/comments/25188.html</wfw:comment><comments>http://blog.vckbase.com/jackliu/archive/2007/03/30/25188.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.vckbase.com/jackliu/comments/commentRss/25188.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/jackliu/services/trackbacks/25188.html</trackback:ping><description>在我们的语句中有时有用到NOT IN 语句， 但是用这条语句时存在一定的问题。&lt;BR&gt;1.NOT IN&lt;BR&gt;SELECT '有' WHERE 1 NOT IN(20, NULL) &lt;BR&gt;    &lt;BR&gt;&lt;BR&gt; --- &lt;BR&gt;（所影响的行数为 0 行）&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;分析： 按理说1本身就不是20, NULL值里，应该 有返回值。&lt;BR&gt;2.使用IN&lt;BR&gt;SELECT '有' WHERE 1 IN(1, NULL)&lt;BR&gt;&lt;BR&gt; --- &lt;BR&gt; 有&lt;BR&gt;（所影响的行数为 1 行）&lt;BR&gt;3.根据SQL SERVER的说明，被比较值的类型比较与比较值的类型一值， NULL不算任何类型就像VARIANT中的VT_NULL一样只一个标志吧。&lt;BR&gt;例如：&lt;BR&gt;SELECT '有' WHERE 1 NOT IN(20, CAST(NULL AS INT))&lt;BR&gt; --- &lt;BR&gt;（所影响的行数为 0 行）&lt;BR&gt;结果还是为0。&lt;BR&gt;&lt;BR&gt;总结： 在比较时将被比较值转换为比较值的类型， 所以我们用时要注意。其次在比较值大小等操作时如无特殊需求就将为NULL的去掉。&lt;BR&gt;例： SELECT * FROM TABLE_NAME WHERE COLUMN_NAME IS NULL &lt;BR&gt;--说明不能用 COLUMN_NAME = NULL哦。相反的就是NOT COLUMN_NAME IS NULL 或者 COLUMN_NAME IS NOT NULL&lt;BR&gt;为啥原因不行， 上面我已经讲了哈。&lt;BR&gt;&lt;BR&gt;&lt;img src ="http://blog.vckbase.com/jackliu/aggbug/25188.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>肉丝</dc:creator><title>用ODBC方式读取EXCEL时，读取出来的内容无效（#错误)之类的解决方法。</title><link>http://blog.vckbase.com/jackliu/archive/2007/03/28/25104.html</link><pubDate>Wed, 28 Mar 2007 03:43:00 GMT</pubDate><guid>http://blog.vckbase.com/jackliu/archive/2007/03/28/25104.html</guid><wfw:comment>http://blog.vckbase.com/jackliu/comments/25104.html</wfw:comment><comments>http://blog.vckbase.com/jackliu/archive/2007/03/28/25104.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://blog.vckbase.com/jackliu/comments/commentRss/25104.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/jackliu/services/trackbacks/25104.html</trackback:ping><description>在ACCESS中会出现#数字!, 而在程序或SQL中会出现NULL&lt;BR&gt;&lt;BR&gt;示例数据&lt;BR&gt;字段1	字段2&lt;BR&gt;1	&lt;BR&gt;2	&lt;BR&gt;3	&lt;BR&gt;4	&lt;BR&gt;5	&lt;BR&gt;6	&lt;BR&gt;7	&lt;BR&gt;8	&lt;BR&gt;9	&lt;BR&gt;10	&lt;BR&gt;11	&lt;BR&gt;12	&lt;BR&gt;13	&lt;BR&gt;14	&lt;BR&gt;15	&lt;BR&gt;16	&lt;BR&gt;17	&lt;BR&gt;18	&lt;BR&gt;19	&lt;BR&gt;20	&lt;BR&gt;21	&lt;BR&gt;22	&lt;BR&gt;吕	&lt;BR&gt;ii	&lt;BR&gt;ddd	&lt;BR&gt;&lt;BR&gt;1.如果用SELECT * FROM [EXCEL 5.0;DATABASE=C:\Test.xls].[sheet1$]查询出来，那么 22后面的全为NULL值&lt;BR&gt;2.那么用SELECT * FROM [EXCEL 5.0;HDR=YES;IMEX=1;DATABASE=C:\Test.Xls].[sheet1$]查询， 后面的值还会是NULL，为什么呢？在这种情况下前八行必须有一个是以符存储的，也就是在单元格前加一个单引号（'1)， 用这种方法就OK了。&lt;BR&gt;3.那么如果前8行没有用又咋办呢？&lt;BR&gt;那么把第一行不当做字段名就行了&lt;BR&gt;SELECT * FROM [EXCEL 5.0;HDR=NO;IMEX=1;DATABASE=C:\Test.xls].[sheet1]&lt;BR&gt;&lt;BR&gt;好了， 三种方案根据实际情况任选喽。&lt;BR&gt;&lt;img src ="http://blog.vckbase.com/jackliu/aggbug/25104.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>肉丝</dc:creator><title>复合文件的操作技巧</title><link>http://blog.vckbase.com/jackliu/archive/2007/03/27/25072.html</link><pubDate>Tue, 27 Mar 2007 06:29:00 GMT</pubDate><guid>http://blog.vckbase.com/jackliu/archive/2007/03/27/25072.html</guid><wfw:comment>http://blog.vckbase.com/jackliu/comments/25072.html</wfw:comment><comments>http://blog.vckbase.com/jackliu/archive/2007/03/27/25072.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blog.vckbase.com/jackliu/comments/commentRss/25072.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/jackliu/services/trackbacks/25072.html</trackback:ping><description>在我的项目中有个地方需要存储自己的文件结构，使用微软的复合文件存储API是比较好的方法， 复合文件中的提法及存储方式我就不介绍了。（两个名词，存储Storage--IStorage, 流Stream--IStream)&lt;BR&gt;以下主要对一个存在的文件或存储进行修改的方法：（其实也不重要，但是很容易忽略)&lt;BR&gt;&lt;BR&gt;HRESULT hr = S_FALSE; //具体原因为啥用S_OK, S_FALSE参考COM&lt;BR&gt;wchar_t wszFileName[] = L"c:\\mydoc.txt"; //复合文件路径&lt;BR&gt;&lt;BR&gt;IStroage *pRootStg = NULL; //根存储&lt;BR&gt;if(::StgIsStorageFile(wszFileName) == S_OK)&lt;BR&gt;{ &lt;BR&gt;    //是个复合文件&lt;BR&gt;   hr = ::StgOpenStorage(wszFileName, NULL,  STGM_READWRITE | STGM_SHARE_EXECLUSIVE | STGM_DIRECT, NULL, 0, &amp;pRootStg);&lt;BR&gt;    if(hr == S_OK)&lt;BR&gt;   {&lt;BR&gt;       //打开成功&lt;BR&gt;   }&lt;BR&gt;&lt;BR&gt;}&lt;BR&gt;else&lt;BR&gt;{&lt;BR&gt;    //错误的复合文件格式&lt;BR&gt;   hr = ::StgCreateDocfile(wszFileName, STGM_READWRITE| STGM_SHARE_EXCLUSIVE |STGM_DIRECT|STGM_CREATE,&lt;BR&gt;     0, &amp;pRootStg);&lt;BR&gt;   if(hr == S_OK)&lt;BR&gt;   {&lt;BR&gt;     //打开成功&lt;BR&gt;   }&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;对于流也是一样的用法， 总之一句话。 如果想在原来的基础上增加子存储或节点的话， 不用能CreateStorage与CreateStream， 得用打开-&gt;创建方式.&lt;BR&gt;&lt;BR&gt;&lt;img src ="http://blog.vckbase.com/jackliu/aggbug/25072.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>肉丝</dc:creator><title>IPicture接口中的数据保存方法</title><link>http://blog.vckbase.com/jackliu/archive/2007/01/26/24239.html</link><pubDate>Fri, 26 Jan 2007 02:08:00 GMT</pubDate><guid>http://blog.vckbase.com/jackliu/archive/2007/01/26/24239.html</guid><wfw:comment>http://blog.vckbase.com/jackliu/comments/24239.html</wfw:comment><comments>http://blog.vckbase.com/jackliu/archive/2007/01/26/24239.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.vckbase.com/jackliu/comments/commentRss/24239.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/jackliu/services/trackbacks/24239.html</trackback:ping><description>&lt;P&gt;因为IPicture接口提供了SaveAsFile，实际上是保存在IStream(流)中，那么就可放剪切板或者保存在文件中，但是此时所占用的大小与原先装入(OleLoadPicture)时的大小不一致，因为被m$修改了啦。&lt;BR&gt;&lt;BR&gt;方法如下:&lt;BR&gt;&lt;BR&gt;HGLOBAL hGlobal = ::GlobalAlloc(GMEM_MOVEABLE, 0); //因为你不知道图像存储需要多少空间，所以设置为0&lt;BR&gt;if(hGlobal)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IStream* pStream = NULL;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HRESULT&amp;nbsp;&amp;nbsp;hr =&amp;nbsp;::CreateStreamOnHGolbal(hGlobal, TRUE, &amp;amp;pStream);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(SUCCEEDED(hr))&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LONG cbSize = 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;&amp;nbsp;hr = pPicture-&amp;gt;SaveAsFile(pStream, FALSE,&amp;nbsp; &amp;amp;cbSize);&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BYTE* pByte = (BYTE*)&amp;nbsp; ::GlobalLock(hGlobal);&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;//操作你的数据...&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; ::GlobalUnLock(hGlobal);&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; }&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;::GlobalFree(hGlobal);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pStream-&amp;gt;Release();&lt;BR&gt;&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/jackliu/aggbug/24239.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>肉丝</dc:creator><title>GetIDispatch的问题</title><link>http://blog.vckbase.com/jackliu/archive/2007/01/19/24097.html</link><pubDate>Fri, 19 Jan 2007 08:12:00 GMT</pubDate><guid>http://blog.vckbase.com/jackliu/archive/2007/01/19/24097.html</guid><wfw:comment>http://blog.vckbase.com/jackliu/comments/24097.html</wfw:comment><comments>http://blog.vckbase.com/jackliu/archive/2007/01/19/24097.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.vckbase.com/jackliu/comments/commentRss/24097.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/jackliu/services/trackbacks/24097.html</trackback:ping><description>&lt;P&gt;写了一个MFC ActiveX , 由于程序需要在控件生命周期内都需要使用控件的接口指针通过&lt;BR&gt;GetIDispatch(TRUE)来获取， 但是只要我不释放该指针， 该类的析构函数是无法执行的，另释放执行放在什么地方？ WM_CLOSE,WM_DESTROY？ 这两个是不行的。&lt;BR&gt;&lt;BR&gt;梆菜姐姐看到就好了~~~~~，期待ing......&lt;/P&gt;&lt;img src ="http://blog.vckbase.com/jackliu/aggbug/24097.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>肉丝</dc:creator><title>《从四川连续两次发生二次辗压事件来看潜规则》</title><link>http://blog.vckbase.com/jackliu/archive/2006/12/24/23649.html</link><pubDate>Sun, 24 Dec 2006 14:55:00 GMT</pubDate><guid>http://blog.vckbase.com/jackliu/archive/2006/12/24/23649.html</guid><wfw:comment>http://blog.vckbase.com/jackliu/comments/23649.html</wfw:comment><comments>http://blog.vckbase.com/jackliu/archive/2006/12/24/23649.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blog.vckbase.com/jackliu/comments/commentRss/23649.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/jackliu/services/trackbacks/23649.html</trackback:ping><description>&lt;A href="http://news.163.com/06/1224/06/333C92JV0001124J.html"&gt;http://news.163.com/06/1224/06/333C92JV0001124J.html&lt;/A&gt;（第二次）&lt;BR&gt;刚好这事件发生离我不远，真是感到又气又悲，这就是21世纪的人性 ，将别人的命当作一根草来看待。&lt;BR&gt;对于该两次事件中 ，第一次肯定是那个开奔驰的人故意的。第二次也有可能，因为倒了车，肯定不会再往前挂档，现在每个人都知道，压到人如果没有死，有可能陪的钱远比死亡的钱多出很多（这就是潜规则），所以很多司机选择压死人或者逃逸，说到这儿，我想起前两天也发生在成都，一位老太婆被撞死，肇事者逃逸（不知道我们伟大的警察同志抓到没有，为什么伟大呢 ，他们辛苦了，这么多事情要他们来处理，太难为他们了，建议多招些处理这类事情的警察），唉~~~，就在前些日子， 在我们小区外边的路口， 一辆灌灌车将一位骑车的女的（因为我没有在目击现场）撞出十多米远（天啦，那里不是主车道呀，而且很多行人要走那儿过呀），脑浆到处都是。&lt;BR&gt;&lt;BR&gt;我提出的我疑问：&lt;BR&gt;1.为什么很多人不遵守。&lt;BR&gt;2.为什么法律管不了这些人？&lt;BR&gt;3.酒后驾车的人在当今社会占多少比例？为什么他们敢酒后驾车？&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;img src ="http://blog.vckbase.com/jackliu/aggbug/23649.html" width = "1" height = "1" /&gt;</description></item><item><dc:creator>肉丝</dc:creator><title>中了3448病毒，连安全模式都进不了。</title><link>http://blog.vckbase.com/jackliu/archive/2006/11/19/23165.html</link><pubDate>Sun, 19 Nov 2006 15:50:00 GMT</pubDate><guid>http://blog.vckbase.com/jackliu/archive/2006/11/19/23165.html</guid><wfw:comment>http://blog.vckbase.com/jackliu/comments/23165.html</wfw:comment><comments>http://blog.vckbase.com/jackliu/archive/2006/11/19/23165.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blog.vckbase.com/jackliu/comments/commentRss/23165.html</wfw:commentRss><trackback:ping>http://blog.vckbase.com/jackliu/services/trackbacks/23165.html</trackback:ping><description>3448病毒这个作者有够毒的， 修改IE默认页， 修改EXPLORER，使其加载驱动。 如果搜索3448 病毒的清理，自动关机;或者求救相关网站（YAHOO&amp;nbsp;&amp;nbsp;）也一样。 &lt;BR&gt;&lt;BR&gt;使用瑞星卡卡助手就可以干掉了。 &lt;img src ="http://blog.vckbase.com/jackliu/aggbug/23165.html" width = "1" height = "1" /&gt;</description></item></channel></rss>