Форум программистов, компьютерный форум, киберфорум
Наши страницы

GetModuleFileNameEx ошибка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Отсортировать по возрастанию элементы массива http://www.cyberforum.ru/cpp-beginners/thread631398.html
1)Дан массив целых чисел из 10 элементов отсортировать по возрастанию. 2)Дан действительный массив A.Напечатать индекс его отрицательных элементов. помогите пожалуйста написать программу на С++
C++ Перевод программы с Pascal на С++ uses crt; var i :integer; BEGIN ClrScr; Write('Результат: '); for i := 20 to 50 do if (i mod 3 = 0) and (i mod 5 <> 0) then Write(i, ' '); Readln; END. http://www.cyberforum.ru/cpp-beginners/thread631389.html
Квадратные уровнения C++
помогите написать код. программа должна: решить квадратное уравнение по трем коэффициентам. даны a, b и c напишите как можно это реализовать.
Рекурсия: нахождение биномиальных коэффициентов C++
В общем нужно вывести биноминальные коэффициенты последовательности.... т.е есть последовательность - скажем вектор 12345 n = size = 5 k - пусть равен 2 тогда результатом должны быть все...
C++ Программы pascal переписать под c++ http://www.cyberforum.ru/cpp-beginners/thread631358.html
Доброго времени суток. вот последняя программа которую нужно сделать под c++ Я знаю парни я вам надоел уже :) Больше не буду вас мучать) Задание: В одномерном массиве, состоящем из n...
C++ Подскажите, как сделать сдвиг массива вправо для вставки нового элемента? // После каждого четного числа добавить число 0. const int n=10; int ar,k=n,t; for(int i=0;i<n;i++){ ar=rand()%10+1; cout<<ar<<"\t"; } cout<<endl<<endl; подробнее

Показать сообщение отдельно
balrak
6 / 6 / 1
Регистрация: 01.04.2012
Сообщений: 81

GetModuleFileNameEx ошибка - C++

31.07.2012, 22:14. Просмотров 1292. Ответов 2
Метки (Все метки)

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#include <iostream>
#include <windows.h>
#include <time.h>
#include "main.h"
#pragma comment(lib,"Psapi")
using namespace std;
 
//global
ULONG crc_tab[256];
 
ULONG getHash(DWORD id)
{
    PIMAGE_OPTIONAL_HEADER optionalHeader;
    PIMAGE_DOS_HEADER dosHeader;
    WCHAR lpFileName[MAX_PATH];
    DWORD simCount = sizeof(lpFileName);
    PVOID Buffer;
    HANDLE exeObj;
    HANDLE pid;
    ULONG hash;
 
    InitHashTable();
    pid = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE , id);
    GetModuleFileNameEx(pid, NULL, lpFileName, MAX_PATH);
    //QueryFullProcessImageName(pid, 0, lpFileName, &simCount);
    CloseHandle(pid);
    exeObj = CreateFile(lpFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL , NULL);
    Buffer = malloc(1024);
    ReadFile(exeObj, Buffer, 1024, &simCount, NULL);
    CloseHandle(exeObj);
    dosHeader = (PIMAGE_DOS_HEADER)Buffer;
    optionalHeader = (PIMAGE_OPTIONAL_HEADER)((UCHAR *)Buffer + dosHeader->e_lfanew + 24);
 
    if (optionalHeader == NULL)
    {
        return 0;
    }
    hash = chksum_crc32 ((UCHAR *) optionalHeader, sizeof(IMAGE_OPTIONAL_HEADER));
    free(Buffer);
    return hash;
}
 
ULONG chksum_crc32 (UCHAR *block, USHORT length)
{
   ULONG crc, i;
 
   crc = 0xFFFFFFFF;
   for (i = 0; i < length; i++)
   {
      crc = ((crc >> 8) & 0x00FFFFFF) ^ crc_tab[(crc ^ *block++) & 0xFF];
   }
   return (crc ^ 0xFFFFFFFF);
}
 
void InitHashTable ()
{
   ULONG crc, poly;
   SHORT i, j;
 
   poly = 0xEDB88320L;
   for (i = 0; i < 256; i++)
   {
      crc = i;
      for (j = 8; j > 0; j--)
      {
     if (crc & 1)
     {
        crc = (crc >> 1) ^ poly;
     }
     else
     {
        crc >>= 1;
     }
      }
      crc_tab[i] = crc;
   }
}
 
void log(char* str)
{
    SYSTEMTIME sm;
    char* buf = new char[16];
 
    GetLocalTime(&sm);
    FILE* file = fopen("dllLog.txt", "a");
    buf = itoa(sm.wYear, buf, 10);
    fwrite(buf, strlen(buf), 1, file);
    fwrite(".", 1, 1, file);
    itoa(sm.wMonth, buf, 10);
    fwrite(buf, strlen(buf), 1, file);
    fwrite(".", 1, 1, file);
    itoa(sm.wDay, buf, 10);
    fwrite(buf, strlen(buf), 1, file);
    fwrite("  ", 2, 1, file);
    itoa(sm.wHour, buf, 10);
    fwrite(buf, strlen(buf), 1, file);
    fwrite(":", 1, 1, file);
    itoa(sm.wMinute, buf, 10);
    fwrite(buf, strlen(buf), 1, file);
    fwrite(":", 1, 1, file);
    itoa(sm.wSecond, buf, 10);
    fwrite(buf, strlen(buf), 1, file);
    fwrite(" :  ", 4, 1, file);
    fwrite(str,strlen(str), 1, file);
    fclose(file);
    delete[] buf;
}
 
int main()
{
    //HINSTANCE hMyDll;
 
    DWORD id = GetCurrentProcessId();
    /*//HANDLE pid = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE , id);
    if((hMyDll = LoadLibrary(L"ProcMon")) == NULL) return 1;
    typedef void (*setuphFunc)();
    setuphFunc setup = (setuphFunc)GetProcAddress(hMyDll,"setup");
    setup();
    typedef int (*SODhFunc)();
    SODhFunc SOD = (SODhFunc)GetProcAddress(hMyDll,"SOD");
    SOD();
    typedef ULONG (*getHashFunc)(DWORD);
    getHashFunc getHash = (getHashFunc)GetProcAddress(hMyDll,"getHash");*/
    ULONG hash = getHash(id);
    log("test string\n");
    log("start\n");
    log("stop\n");
}
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
36
37
38
39
40
41
42
43
//.h
#include <windows.h>
 
 
WINBASEAPI BOOL WINAPI QueryFullProcessImageName(
  __in     HANDLE hProcess,
  __in     DWORD dwFlags,
  __out    LPTSTR lpExeName,
  __inout  PDWORD lpdwSize
);
WINBASEAPI __out HANDLE WINAPI GetCurrentProcess(void);
WINBASEAPI HANDLE WINAPI OpenProcess(
  __in  DWORD dwDesiredAccess,
  __in  BOOL bInheritHandle,
  __in  DWORD dwProcessId
);
WINBASEAPI HANDLE WINAPI CreateFile(
  __in      LPCTSTR lpFileName,
  __in      DWORD dwDesiredAccess,
  __in      DWORD dwShareMode,
  __in_opt  LPSECURITY_ATTRIBUTES lpSecurityAttributes,
  __in      DWORD dwCreationDisposition,
  __in      DWORD dwFlagsAndAttributes,
  __in_opt  HANDLE hTemplateFile
);
WINBASEAPI BOOL WINAPI ReadFile(
  __in         HANDLE hFile,
  __out        LPVOID lpBuffer,
  __in         DWORD nNumberOfBytesToRead,
  __out_opt    LPDWORD lpNumberOfBytesRead,
  __inout_opt  LPOVERLAPPED lpOverlapped
);
WINBASEAPI PIMAGE_NT_HEADERS WINAPI ImageNtHeader(
  __in  PVOID ImageBase
);
WINBASEAPI DWORD WINAPI GetModuleFileNameEx(
  __in      HANDLE hProcess,
  __in_opt  HMODULE hModule,
  __out     LPTSTR lpFilename,
  __in      DWORD nSize
);
ULONG chksum_crc32 (UCHAR *, USHORT);
void InitHashTable ();
выдает ошибку :

1>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) unsigned long __stdcall GetModuleFileNameEx(void *,struct HINSTANCE__ *,wchar_t *,unsigned long)" (__imp_?GetModuleFileNameEx@@YGKPAXPAUHINSTANCE__@@PA_WK@Z) referenced in function "unsigned long __cdecl getHash(unsigned long)" (?getHash@@YAKK@Z)

подключения #pragma comment(lib,"Psapi") не помогло
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru