AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe beim Übersetzten von C in Delphi

Ein Thema von simjoh · begonnen am 23. Mär 2007 · letzter Beitrag vom 1. Apr 2007
Antwort Antwort
simjoh

Registriert seit: 13. Nov 2006
Ort: Asslar
99 Beiträge
 
Delphi 7 Enterprise
 
#1

Re: Hilfe beim Übersetzten von C in Delphi

  Alt 24. Mär 2007, 06:40
Lieber Robert,

vielen Dank bis hierhin. Alle deine Tipps sind Volltreffer. Ich erlaube mir mal noch ein paar Fragen zu stellen.

1. Bei
Code:
if (GL_Add6MaxTag=true) then
begin
  RMIndex:=GetIndexToNextSubString(Buffer,' (Real Money)',BufferLen);
  if (RMIndex>=0) then
  begin
    OutStream.write(Buffer,RMIndex);
    OutStream.write(' (6 max)',strlen(' (6 max)'));   // Add the 6-max tag.
    OutStream.write(Buffer+RMIndex,BufferLen-RMIndex);
  end
  else
  begin
    OutStream.write(Buffer,BufferLen);   // If can't find, just write as normal.
  end;
end
else
begin // Write the rest of the buffer.
    OutStream.Write(Buffer, BufferLen);
end;
motzt der Compiler bei
Code:
OutStream.write(Buffer+RMIndex,BufferLen-RMIndex);
nach Buffer+RMIndex. Die Meldung: Variable erforderlich.

2. Wie würdest du das übersetzten:
Code:
if (MBI.RegionSize>BufferLen)
{
  if (Buffer!=NULL)
    delete [] Buffer;
  Buffer = new char[MBI.RegionSize];
  BufferLen=MBI.RegionSize;
}
3. Und das
Code:
static unsigned int MinRegionSize=~0;
Was bedeutet das =~ ?


4. Damit kann ich garnix anfangen:
Code:
for (register unsigned int I=MaxLen;I!=0;I-=GL_StringAlignment)
{
  // Look for "#Game No : " - Don't use stncmp - slow as fuck...
  // v0.04: Use the fact always alligned to just check via a 32bit comp.
  // NOTE: Will even cast to non-aligned int, but will be slower.
  if ((*((unsigned int*)(&Buffer[I]))) == ((((unsigned int)'m')<<24)
   |(((unsigned int)'a')<<16)
   |(((unsigned int)'G')<<8)
   |(((unsigned int)'#'))) // Remember: big-endian...
   && Buffer[I+4]=='e'
   && Buffer[I+5]==' '
   && Buffer[I+6]=='N'
   && Buffer[I+7]=='o'
   && Buffer[I+8]==' '
   && Buffer[I+9]==':'
   && Buffer[I+10]==' '
   && Buffer[I+11]>='0'
   && Buffer[I+11]<='9')                         
{
Wie kann man denn das übersetzten? Muss ich das mit ner while-Schleife erschlagen?


5. Was ist denn char** ?:
Code:
void ParseArgs(int argc,char** argv)
6. Und das:
Code:
char GL_Extention[4]="hhf";   
strcpy_s(GL_Extention,argv[I+1]);
in Delphi: strcopy frisst GL_Extention nicht.

7. Hier wird wohl eine Procedure deklariert:
Code:
DWORD WINAPI MainThread(void *Param)
Wie übersetz ich das denn?

Die ganze Proc:
Code:
DWORD WINAPI MainThread(void *Param)
{  // Used so we can start with different priorities (saves messing with    
      the batch file).

  static PartyHandGrabber PHG;

  // Start the main loop (never returns...).
  PHG.StartLoop();
  // ### NEVER RETURNS - BUT MIGHT BE USEFUL IF WE ONE DAY ADD A GUI ###
  //ExitThread(0);
  return 0;
}
Merkwürdig, dass Param in der Procedur nicht mehr auftaucht.

8. Und dann noch:
Code:
int main(int argc, char** argv)
{

   DWORD ThreadID;   // Unused, but must have for win9x...
   HANDLE ThreadHandle;

   // Parse the arguments.
   ParseArgs(argc,argv);

   // Display something just to let the user know that we have started.
   if (GL_Verbose==true)
      DisplayStartupInfo();

   // Start the thread.
   ThreadHandle=CreateThread(NULL,0,MainThread,0,0,&ThreadID);

   // Set the desired priority of the thread.
   if (GL_Priority==-2)
      SetThreadPriority(ThreadHandle,THREAD_PRIORITY_LOWEST);
   else if (GL_Priority==-1)
      SetThreadPriority(ThreadHandle,THREAD_PRIORITY_BELOW_NORMAL);
   else if (GL_Priority==0)
      SetThreadPriority(ThreadHandle,THREAD_PRIORITY_NORMAL);
   else if (GL_Priority==1)
      SetThreadPriority(ThreadHandle,THREAD_PRIORITY_ABOVE_NORMAL);
   else if (GL_Priority==2)
      SetThreadPriority(ThreadHandle,THREAD_PRIORITY_HIGHEST);

   // Lets just let the thread do it's work (just idle here forever).
   WaitForSingleObject(ThreadHandle,INFINITE);

   return 0;
}
Wie wird denn hier
Code:
ThreadHandle=CreateThread(NULL,0,MainThread,0,0,&ThreadID);
In Delphi übertrage?

Viiiiiiiielen Dank für deine Hilfe, wenn du denn überhaupt Lust dazu hast.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz