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

Преобразование LPVOID в int - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 5.00
Derpy
 Аватар для Derpy
3 / 3 / 0
Регистрация: 25.12.2011
Сообщений: 20
13.04.2012, 21:05     Преобразование LPVOID в int #1
Собственно вопрос в коде
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <Windows.h>
#include <stdio.h>
 
DWORD WINAPI Func(LPVOID);
 
int main(void)
{
    int a=0;
    DWORD thID;
    CreateThread(NULL,NULL,Func,&a,NULL,&thID);
 
    char c;
    scanf("%c",&c);
    return 0;
}
DWORD WINAPI Func(LPVOID input)
{
    //Как тут преобразовать LPVOID в int?
    printf("Func\n");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2012, 21:05     Преобразование LPVOID в int
Посмотрите здесь:

Преобразование int в float C++
C++ Преобразование string в int
Преобразование string в int C++
преобразование int в string C++
C++ Преобразование string в int
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
13.04.2012, 21:28     Преобразование LPVOID в int #2
C++
1
2
long long n;
memcpy(&n,&input,sizeof input);
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
13.04.2012, 21:34     Преобразование LPVOID в int #3
C++
1
2
3
4
5
DWORD WINAPI Func(LPVOID input)
{
    printf("a = %d\n", *static_cast<const int*>(input));
    return 0;
}
Derpy
 Аватар для Derpy
3 / 3 / 0
Регистрация: 25.12.2011
Сообщений: 20
13.04.2012, 21:37  [ТС]     Преобразование LPVOID в int #4
Цитата Сообщение от Nekto Посмотреть сообщение
C++
1
2
long long n;
memcpy(&n,&input,sizeof input);
n получается равно не 0 а произвольному 7ми значном числу

Добавлено через 2 минуты
Цитата Сообщение от Nick Alte Посмотреть сообщение
C++
1
2
3
4
5
DWORD WINAPI Func(LPVOID input)
{
    printf("a = %d\n", *static_cast<const int*>(input));
    return 0;
}
Спасибо помогло
Unwebo
20 / 20 / 3
Регистрация: 13.04.2012
Сообщений: 38
14.04.2012, 00:22     Преобразование LPVOID в int #5
2 варианта:

Первый
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <Windows.h>
#include <stdio.h>
 
DWORD WINAPI Func(LPVOID);
 
int main(void)
{
    int a=0;
    DWORD thID;
    CreateThread(NULL,NULL,Func,&a,NULL,&thID);
 
    char c;
    scanf("%c",&c);
    return 0;
}
DWORD WINAPI Func(LPVOID input)
{
    int n = *(int*)input;
    printf("Func\n");
    return 0;
}


Второй
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <Windows.h>
#include <stdio.h>
 
DWORD WINAPI Func(LPVOID);
 
int main(void)
{
    int a=0;
    DWORD thID;
    CreateThread(NULL,NULL,Func,(LPVOID)a,NULL,&thID);
 
    char c;
    scanf("%c",&c);
    return 0;
}
DWORD WINAPI Func(LPVOID input)
{
    int n = (int) input;
    printf("Func\n");
    return 0;
}
p_r_a_g_m_a
 Аватар для p_r_a_g_m_a
108 / 60 / 17
Регистрация: 08.03.2012
Сообщений: 208
Завершенные тесты: 1
14.04.2012, 00:24     Преобразование LPVOID в int #6
Еще можно так:
C++
1
2
3
4
5
DWORD WINAPI Func(LPVOID input)
{
    printf("a = %d\n", *(int*)input);
    return 0;
}
Yandex
Объявления
14.04.2012, 00:24     Преобразование LPVOID в int
Ответ Создать тему
Опции темы

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