Форум программистов, компьютерный форум CyberForum.ru

Потоки - C++

Восстановить пароль Регистрация
 
ganjawar
0 / 0 / 0
Регистрация: 09.09.2011
Сообщений: 40
15.09.2011, 16:55     Потоки #1
Пытаюсь создать поток
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include<windows.h>
#include<iostream>
#include <stdio.h>
#include <process.h>
#include <fstream>
using namespace std;
 
WIN32_FIND_DATAA FindFileData;//структура файла
FILE *stream;
char path[20]={0};
 
//unsigned __stdcall crypto(void* p);
void crypto(void* Param);
 
int main()
{
    HANDLE hf;
 
    int mas[]={1, 2};
 
    printf("input dir\n");                  //ввод пути
    cin>>path;
    hf=FindFirstFileA(path, &FindFileData);
    path[strlen(path)-1]=0;                 //удаляем "*"
    if (hf!=INVALID_HANDLE_VALUE){
        while (FindNextFileA(hf,&FindFileData)!=0)
        {
            _beginthread(crypto, 0, NULL);
            //_beginthreadex(NULL, 0, &crypto, (void*)mas, 0, NULL);
            //crypto();
        }
        FindClose(hf);
        }else {std::cout << "Error,input path";}
    return 1;
}
Такая проблема
Ошибка 2 error LNK2001: неразрешенный внешний символ ""void __cdecl crypto(void *)" (?crypto@@YAXPAX@Z)" C:\Documents and Settings\admin\Рабочий стол\OS_1\OS_1\main.obj OS_1

Ошибка 3 error LNK1120: 1 неразрешенных внешних элементов C:\Documents and Settings\admin\Рабочий стол\OS_1\Debug\OS_1.exe 1 1 OS_1

Добавлено через 52 секунды
а если закомментить создание потока то все нормально
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2011, 16:55     Потоки
Посмотрите здесь:

Потоки с++ C++
потоки C++
Потоки C++
Потоки C++
Потоки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
15.09.2011, 16:59     Потоки #2
ganjawar, А определение функции crypto где?
ganjawar
0 / 0 / 0
Регистрация: 09.09.2011
Сообщений: 40
15.09.2011, 17:02  [ТС]     Потоки #3
внизу маина)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void crypto()
{
        if ((strcmp(FindFileData.cFileName,"..")==0) || (strcmp(FindFileData.cFileName,".")==0))//нужен только файл
        {
            std::cout << FindFileData.cFileName << "\n";
        }else
        {
            strcat(path, FindFileData.cFileName);               //склеиваем путь и имя файла
            std::fstream file(path);
            if (file.is_open())                                 //если файл открыт
            {
                    int c;
                    streampos pos;
                    while ((c = file.get()) != EOF)             //шифруем пока не конец файла
                    {
                        c = c+1;
                        pos = file.tellp();
                        file.seekp((int)pos-1);
                        file.put((char)c);
                        file.seekp(pos);
                    }
            }
        }
}
Danvern
 Аватар для Danvern
40 / 39 / 3
Регистрация: 22.06.2010
Сообщений: 415
Записей в блоге: 1
15.09.2011, 17:49     Потоки #4
прототип функции crypto и реализация отличаются...
void crypto(void* Param);
void crypto()
ganjawar
0 / 0 / 0
Регистрация: 09.09.2011
Сообщений: 40
15.09.2011, 18:27  [ТС]     Потоки #5
Спасибо заработало..но теперь другая проблема..когда доходит до создания потока..он похоже не создается или типо того...отладник начинает прыгать в строку после цикла while и не заходит в функцию для которой был поток

Добавлено через 13 минут
Спасибо..все работает..разобрался
Yandex
Объявления
15.09.2011, 18:27     Потоки
Ответ Создать тему
Опции темы

Текущее время: 14:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru