Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибки компиляции 
V
    Опции темы
бУРов
Дата 28.11.2013, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 20.8.2010

Репутация: нет
Всего: нет



Есть вот такой код:

Код
#include "stdafx.h"
#include <atlstr.h>

//  Forward declarations:
void printError( char* msg );
TCHAR module_name[MAX_PATH];
DWORD dwSize = sizeof(module_name)/sizeof(TCHAR) - 1;
CString ProcName;
LPTSTR ProcPath;

BOOL CheckProcess( char* ParName )
{
    HANDLE hProcessSnap;
    HANDLE hProcess;
    bool bIsok = FALSE;
    PROCESSENTRY32 pe32;

    ProcPath="";
    // Take a snapshot of all processes in the system.
    hProcessSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );
    if( hProcessSnap == INVALID_HANDLE_VALUE )
    {
        printError("CreateToolhelp32Snapshot (of processes)");
        return( FALSE );
    }

    // Set the size of the structure before using it.
    pe32.dwSize = sizeof( PROCESSENTRY32 );

    // Получить инфо на первый процесс
    // и выйти, если ошибка
    bIsok = Process32First( hProcessSnap, &pe32 );
    if( GetLastError() )
    {
        printError("Process32First");
        CloseHandle( hProcessSnap );
        return( FALSE );
    }

    // Для каждого процесса из списка (снимка)
    while(bIsok)
    {
        printf("%s  %u\n", pe32.szExeFile, pe32.th32ProcessID);
        bIsok = Process32Next(hProcessSnap, &pe32);
        if( GetLastError() )
        {
            printError("Process32Next");
            CloseHandle( hProcessSnap );
            return( FALSE );
        }

        ProcName = pe32.szExeFile;
        if ( ProcName == ParName )            // процесс найден
        {
            hProcess = OpenProcess( PROCESS_TERMINATE, FALSE, pe32.th32ProcessID );
            if( GetLastError() )
            {
                printError("OpenProcess");    // показать причину ошибки
                CloseHandle( hProcessSnap );    // clean the snapshot object
                return( FALSE );
            }
            break;
        }
    }
    CloseHandle( hProcessSnap );
    return( TRUE );
}

int main(int argc, char *argv[])
{
    while(1)
    {
        CheckProcess( argv[1] );
        printf( "\n%s", ProcName );
        Sleep( 1000 );
    }
    return 0;
}


До некоторого времени он компилировался нормально. Но вдруг! стал выдавать вот такое:

1>wdc.obj : error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl printError(char *)" (?printError@@YAXPAD@Z) в функции "int __cdecl CheckProcess(char *)" (?CheckProcess@@YAHPAD@Z)
1>C:\...wdc.exe : fatal error LNK1120: 1 неразрешенных внешних элементов

С чего бы это?
PM MAIL   Вверх
DarthTon
Дата 28.11.2013, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 7.2.2009

Репутация: 5
Всего: 6



А куда делось тело функции printError?
PM MAIL   Вверх
бУРов
Дата 28.11.2013, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 20.8.2010

Репутация: нет
Всего: нет



Спасибо, похоже увлекся и вырезал.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0425 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.