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

Вызов функции из потока - C++

Восстановить пароль Регистрация
 
Salomons
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 3
03.04.2011, 17:14     Вызов функции из потока #1
Добрый день!
Есть задание по курсовой: Вызов из разных потоков функций чтения из файла. Функции находятся в DLL. Функции чтения:заголовок, данные.

Вот мой код

DLL:

#include "stdafx.h"
#include "n.h"
#include <windows.h>
#include <iostream.h>
#include <winbase.h>

BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}


DWORD WINAPI Read(LPVOID *lpParam)

{


HFILE hfile;

DWORD rNumber;

DWORD sizelow;

OFSTRUCT ofs;


hfile = OpenFile("C:\\1.txt",&ofs,OF_READ);

sizelow = GetFileSize(HANDLE(hfile),NULL);

char *buf= new char[sizelow];

ZeroMemory(&buf,sizelow);

BOOL r = ReadFile(HANDLE(hfile),buf,sizelow,&rNumber,NULL);

CloseHandle(HANDLE(hfile));

lpParam = reinterpret_cast<LPVOID*>(buf);

return r;

}

приложение:

#include "stdafx.h"
#include <windows.h>
#include <iostream.h>

typedef DWORD (WINAPI *Readfn)(LPVOID);

void main()

{

HINSTANCE hDLL;

BOOL free;

hDLL = LoadLibrary("n.dll");

Readfn pfn = (Readfn) GetProcAddress(hDLL,"Read");

char *value1 = NULL;

HANDLE thread1 = CreateThread(NULL,0,pfn,value1,0,NULL);

HANDLE *threads = new HANDLE[2];

threads[0]=&thread1;

cout<<value1;

delete[]value1;

free = FreeLibrary(hDLL);


}

Всё компилируется без ошибок, но постоянно вылетает unhandled exception.
Я совсем недавно начал изучать программирование, поэтому возникают проблемы. И я честно говоря не знаю как с этим бороться. Заранее благодарен за помощь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2011, 17:14     Вызов функции из потока
Посмотрите здесь:

Запуск потока для функции с параметрами C++
C++ Вызов функции
C++ Передача потока по параметру функции
Вызов функции C++
C++ return в функции потока
Вызов функции в возврате значения функции C++
Обращение потока к функции-члену класса C++
Вызов функции в параметре другой функции C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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