Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > error C2059: syntax error : ']'


Автор: утюжок 3.4.2004, 19:56
ужас какой-то. Всё перепробовал.

Код
#include "stdafx.h"
#include <windows.h>
#include <TLHELP32.h>

using namespace std;

void Kill(char* str[])
{
/*ошибка здесь syntax error : ']'*/ char* buff[] = *str[];

HANDLE hSnap;
PROCESSENTRY32 ProcEntry;

hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(!hSnap){
cout << "tool help NOT loaded" << endl;


BOOL ok;

if(Process32First(hSnap, &ProcEntry)){
if(strcmp((const char*)buff, ProcEntry.szExeFile)==0) ok = TerminateProcess(hSnap, 0);
if(ok) cout << buff << " убит!" << endl;
while(Process32Next(hSnap, &ProcEntry)){
 if((const char*)buff == ProcEntry.szExeFile){
  HANDLE hProc = NULL;
 hProc = OpenProcess(SYNCHRONIZE, FALSE, ProcEntry.th32ProcessID);

  if(hProc){
   ok = FALSE;
   ok = TerminateProcess(hProc, 0);  
   CloseHandle(hProc);
  }    
 }
 if(ok) cout << buff << " -убит!" << endl;
}
}
CloseHandle(hSnap);

}
}

void TakeNext(char* buff[], BOOL* done)
{
//..
}

Автор: srd 3.4.2004, 20:03
А в чем мистика? char* buff[] = *str[] - если это язык С++, то это бред написан. Попробуй char **buff = str, если тебе действительно нужен массив строк. А то далее в коде весьма странные преобразования идут. Может, ты просто строку хочешь в качестве параметра передать?
Код

if((const char*)buff == ProcEntry.szExeFile){

Эта строчка тоже очень подозрительная. Ты хочешь сравнить указатели, или сами строки?

Автор: Coocky 4.4.2004, 13:29
Цитата
char* buff[] = *str[];
ТЫ че,дружок,в коем это веке... biggrin.gif
Максимум,что ты себе можешь позволить со скобками
Код

char *buf=&str[0];
biggrin.gif
А srd прав smile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)