![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
MrKernighan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 2.1.2011 Репутация: нет Всего: нет |
Доброго времени суток Уважаемые эксперты. Я разобрался с проблемой "Точка входа в процедуру 'x' не найдена в DLL 'y'" но теперь возникла другая проблема (смотреть скрин), я уже устал и честно даже не знаю что уже делать.
Я тупой и наверное я не программист и больше слов у меня нет. Это уже 4 или 5 день от когда я взялся за эту задачу... ![]() Порыскал google, он мне сказал что такая проблема происходит когда где-то памяти не может произойти запись куда-то, таки да, открыл свой *.exe могучей Олькай, так она остановилась на этом месте (смотреть скрин). Вообще *.exe работает отлично, не подумайте что это могут проблемы в *.exe, проблема изза моей *.dll ![]() ~Описываю все действия что я сделал: 1) Подставил фейк opengl32.dll в директорию с моим приложением чтобы происходило чтение моей *dll а не оригинальной opengl32 из системной директории. 2) Экспортирую все функции используемые *.exe приложением следующим образом. Код объемный в 2к с копейками строчек, изза количество функций, поэтому вынужден сделать вложение но приведу еще 1 пример как я это делаю. # Указатель на оригинальную функцию - void (APIENTRY *ptr_glAccum) (GLenum op, GLfloat value); # Получаем модуль - HMODULE hDLL = LoadLibraryA("c:\windows\system32\opengl32.dl) # Получаем адрес ориг. функции - (FARPROC&)ptr_glAccum = GetProcAddress(hDLL, "glAccum"); # Экспортируемая функция - DLLExport void __stdcall glAccum(GLenum op, GLfloat value) { ptr_glAccum(op, value); } И конечно же *.def файл
Благодаря definition файл я избавился от проблемы с точкой входа. Но что еще им нужно от меня? Что я упустил? Я скажу не то что спасибо, я скажу нереально огромное спасибо за подсказку. Присоединённый файл ( Кол-во скачиваний: 9 ) ![]() |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 1 Всего: 196 |
Ошибка здесь:
|
|||
|
||||
MrKernighan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 2.1.2011 Репутация: нет Всего: нет |
Вот я лось тупорылый... bsa Низкий тебе поклон и огромное тебе спасибо, я уж думал мне решить этой задачи.
#Проблема решена. |
|||
|
||||
ASMatic |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 254 Регистрация: 14.3.2009 Репутация: 1 Всего: 1 |
MrKernighan, дабы не парится в будущем с непонятными сепшинами в юм
http://wasm.ru/forum/viewtopic.php?id=32181 полезная вещь от Clerk-а ![]() |
|||
|
||||
Dem_max |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
тут тоже не правильно, нужно делать так
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
||||
|
|||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 5 Всего: 50 |
Не, так лучше
![]()
|
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
еще лутше так
![]() -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
Dik0n |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 153 Регистрация: 11.5.2011 Репутация: 1 Всего: 10 |
А всех лучше так
![]()
--------------------
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ◄◄◄ Сотри монеткой защитный слой |
|||
|
||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 5 Всего: 50 |
Не, так:
![]() Это сообщение отредактировал(а) Alca - 29.7.2011, 17:55 |
|||
|
||||
volatile |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 13 Всего: 85 |
Вы все что-то добавляете и добавляете, ... зачем?
1. Винда может находиться и не в "c:/windows" (и в этом случае код работать не будет) 2. Системная папка винды (system32) полюбому находится в путях поиска dll. (иначе и быть не может) так что, :
![]() |
||||
|
|||||
bass |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Читай тему с начало..... В нашей папке есть такая длл и подгрузиться она... Дальше при вызове функции все заклиниться...... -))))))) GetSystemDirectory Поможет -)))))) Это сообщение отредактировал(а) bass - 30.7.2011, 09:26 |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |