首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

一个简单的语法,放在线程中程序就崩溃,放在BUTTON下就没有关问题,有代码

2013-04-21 
一个简单的语法,放在线程中程序就崩溃,放在BUTTON下就没问题,有代码varFHTTPObj: OleVariantbegin FHTTPO

一个简单的语法,放在线程中程序就崩溃,放在BUTTON下就没问题,有代码
var
FHTTPObj: OleVariant;
begin 

FHTTPObj := CreateOleObject('WinHttp.WinHttpRequest.5.1');

  log(3);
     // FHTTPObj.Charset :='GB2312';
  FHTTPObj.setTimeouts(50000, 50000, 50000, 50000);
  FHTTPObj.Open('GET', 'https://www.baidu.com/', False);
  FHTTPObj.SetRequestHeader('User-Agent', MyUserAgent);
  FHTTPObj.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
end;

这个函数 放在线程下 程序就崩溃 放在BUTTON主程序下 就完全没问题,请教哪出了问题 多线程 gb2
[解决办法]
试下这样:


uses ActiveX;


var
 FHTTPObj: OleVariant;
begin
  coInitialize(nil);
  try
  FHTTPObj := CreateOleObject('WinHttp.WinHttpRequest.5.1');
 
  log(3);
      // FHTTPObj.Charset :='GB2312';
   FHTTPObj.setTimeouts(50000, 50000, 50000, 50000);
   FHTTPObj.Open('GET', 'https://www.baidu.com/', False);
   FHTTPObj.SetRequestHeader('User-Agent', MyUserAgent);
   FHTTPObj.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  finally
    CoUninitialize;
  end;
 end;

[解决办法]
线程中要单独初始化COM环境——CoInitialize
[解决办法]
前几天也才纠结这个问题,为了完成任务就直接不用线程了。
又记得在某群里正好也见过讨论,昨天重写了下代码,就是用的coInitialize初始化com组件

热点排行