Q&A

  • [질문] CreateThread 의 4 번째 인수값 다시한번 봐주세요
Function Broadcast_Jpeg_Thread(P:Pointer):Longint;stdcall;
var Loop:integer;
    MSG :integer;
    buff:Pointer;
begin
   try
      여기서 P:Pointer 를 이용 
      buff 에 들어있는  자료를 이용하고 싶은데 
      잘 이해를 못하고 있습니다.

 
      For Loop:=0 to  Socket_list.Count -1 do
      begin
         with Socket_list.SocketItem[Loop] do
           if (ChkSocket = CSocket) and (Connected) then SendUser(P^);
      end;
       Finally
     Result:=1;
   end;
end;




 Buff :Pchar

 Buff = 4byte,       4byte,      4byte,       4byte,      Stream                     형식으로 자료가 들어있습니다
          integer      integer     integer      integer     TMemoryStream

function  TForm1.Broadcast_Jpeg(CSocket:integer;Socket_List:TSocketList;Buff:Pchar):Boolean;
var Thread :THandle;
    ThrID : DWORD;
begin
   Thread:=CreateThread(nil,0,@Broadcast_Jpeg_Thread, @Buff,0,ThrID);
   if Thread = 0 then ShowMessage('Broadcast_Jpeg_Thread Not Create');
   CloseHandle(Thread);
end;

2  COMMENTS
  • Profile
    이정욱 2013.10.13 03:47

    구분자별로 라는 뜻이 무슨 뜻인지요..?

    PInteger도 PChar도 모두 Pointer입니다..

    만약 Integer와 String을 따로 구별하고 싶으신것이라면 값을 만드실 때 구분자를 넣어서 만드셔서 보내는 방법밖에 없습니다.

    integer일 경우에는 'i' + IntToStr(값) 하신 후 빼서 쓰실때는 저 맨앞의 i를 빼고 넣어주시면 되죠.. string의 경우에는 다른 구분자(예를들어 's')를 넣고 구분하시면 될 듯 합니다. 물론 이 값들을 보낼때는 pChar ( 즉 String형태)로 보내셔야겠지요.

     

     

  • Profile
    고속버스 2013.10.13 04:02

    답변 주셔서 감사드립니다

    말씀 해 주신대로 다시 한번 해보겠습니다.