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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Salomons
0 / 0 / 0
Регистрация: 03.04.2011
Сообщений: 3
#1

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

03.04.2011, 17:14. Просмотров 486. Ответов 0
Метки нет (Все метки)

Добрый день!
Есть задание по курсовой: Вызов из разных потоков функций чтения из файла. Функции находятся в 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     Вызов функции из потока
Посмотрите здесь:

return в функции потока - C++
Куда возвращается значение, указанное в return функции созданного потока?

Передача потока по параметру функции - C++
Доброго времени суток. Есть пара вопросов :) Допустим у нас имеется функция открытия файла: int open_file() { char...

Запуск потока для функции с параметрами - C++
Доброго дня! Что хочется: распараллелить выполнение процедуры func. Давая новым потокам соответствующие параметры. На c# я...

Обращение потока к функции-члену класса - C++
Есть Класс MainWindow, функцией-членом которой выступает Reader(), при попытке обратиться поток к данной функции-члену из main'a через...

Вызов функции - C++
Здравствуйте! Такая задача:Разработать и испытать функцию, которая удаляет из целочисленного одномерного массива все элементы, совпадающие...

Вызов функции. - C++
Здрасти, у меня есть функция вычесления суммы цифр числа int sum_digit(int x) { int sum=0; while (x!=0){ ...

Вызов функции - C++
Привет всем. Вот такая структура кода: void Sailary() void SetShop() void SetMenu() void ResetData() int main()

Вызов неопрелелнной функции в QT - C++
Здравствуйте. Помогите, пожалуйста, с проблемой : не могу вызвать метод из QMap. mainwindiw.h: class MainWindow : public QMainWindow...

Вызов функции по ссылке в C++ - C++
Привет форумчане. Возникла у меня такая проблем с решением задачи. Не могу сообразить как её сделать. Если несложно то помогите пожалуйста....

Вызов шаблонной функции - C++
Что я делаю не так? есть функция: template &lt;class T&gt; T rFF(string input_file) { string tmp; ifstream file(input_file); file...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru