代码如下:
function ETL(P:pointer):Longint;stdcall;
begin
........
end;
procedure Tfrmxjetl.btn1Click(Sender: TObject);
var
  hThread:Thandle;// ThreadID:DWord;
begin
  hthread:=CreateThread(nil,0,@ETL,nil,0,ThreadID);
end;

解决方案 »

  1.   

    先看看CreateThread的函数定义:function CreateThread(lpThreadAttributes: Pointer;
                          dwStackSize: DWORD;
                          lpStartAddress: TFNThreadStartRoutine;
                          lpParameter: Pointer; 
                          dwCreationFlags: DWORD; 
                          var lpThreadId: DWORD): THandle; stdcall;其中lpStartAddress,lpParameter,lpThreadId三个参数是必须的。
    lpStartAddress参数指向的是线程执行体ThreadProc的开始地址;
    lpParameter指针类型,线程的传入参数,我们如果想给线程执行体ThreadProc传递我们自己的数据,
               就要通过它了;
    lpThreadId返回创建线程ID。明白了吧,你的参数不对。
      

  2.   

    指针参数你没有传递,给nil不行的