Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.03.19;
Скачать: [xml.tar.bz2];

Вниз

FreeLibrary -> Invalid pointer operation   Найти похожие ветки 

 
pargo ©   (2006-02-17 14:50) [0]

В проекте тестирую загрузку и выгрузку библиотеки:
var
TestLib:string="TestLib.dll";
Hand:THandle=0;

procedure Test;
begin
Hand:=LoadLibrary(PChar(TestLib));
if Hand<>0 then FreeLibrary(Hand);<----- Invalid pointer operation
end;


Библиотека при згрузке не выполняет никаких действий,
кроме того, что в ней есть функции типа: function SamFunction; external ADVAPI32;
Если в библиотеке не подключен модуль ShareMem, то при FreeLibrary вылетает
с ошибкой: " Invalid pointer operation", а при использовании SareMem этой
ошибки нет. В чем может быть дело ? Как избежать ошибки, не подключая ShareMem ?


 
Игорь Шевченко ©   (2006-02-17 15:11) [1]


> Как избежать ошибки, не подключая ShareMem ?


Не использовать string в параметрах


 
RO   (2006-02-17 15:21) [2]

приведенный код при условии


> Библиотека при згрузке не выполняет никаких действий


не может привести к


FreeLibrary -> Invalid pointer operation


 
pargo ©   (2006-02-17 15:28) [3]

В параметрах используються только LPCSTR и LPCWSTR,
исходя из описаний самих функций


 
pargo ©   (2006-02-17 15:36) [4]

RO   (17.02.06 15:21) [2]
Тем не менее это так.
Кроме импорта функций из AdvApi32, ничего нет.


 
RO   (2006-02-17 15:40) [5]


> В параметрах используються только LPCSTR и LPCWSTR


Какике такие "параметры" ?

В приведенном коде нет ни единого вызова ни единой ф-ции из этой DLL.
Есть только ее загрузка и тут же выгрузка.


 
pargo ©   (2006-02-17 15:47) [6]

RO   (17.02.06 15:40) [5]
Параметры функций, которые TestLib импортирует из AdvApi32


 
Игорь Шевченко ©   (2006-02-17 16:02) [7]

Я надеюсь, для моего телепатора будет сделана поблажка, он и так уже перегрелся.

Код в студию. ВЕСЬ.


 
RO   (2006-02-17 16:15) [8]


> pargo ©   (17.02.06 15:47) [6]
> RO   (17.02.06 15:40) [5]
> Параметры функций, которые TestLib импортирует из AdvApi32


Мало ли кто/что кого/что импортирует !

Если ты не используешь соотв.ссылку, "умный" (!)  Делфи-компилятор не включит в результ.код НИ ЕДИНОГО байта, имеющего отношения к тому что ты задумал, но никак не использовал.

Нет вызова - нет проблем.


 
RO   (2006-02-17 16:18) [9]


> pargo


А если ты не понимаешь разницы между декларацией идентификатора и последующим использользованием ранее декларированного идентификатора, то тебе дорога в букварь по Паскалю, прежде че ты начнешь "тыкаться" в Делфи.


 
RO   (2006-02-17 16:22) [10]

Удалено модератором


 
RO   (2006-02-17 16:25) [11]

Удалено модератором


 
Mikhail   (2006-02-17 16:28) [12]


> RO

Напугал человека :)
Код !!!!!!!!!! (см. > Игорь Шевченко ©   (17.02.06 16:02) [7] )


 
RO   (2006-02-17 16:31) [13]

Я уже понял, кто и почем.


 
RO   (2006-02-17 16:49) [14]

Удалено модератором
Примечание: Прекрати.


 
pargo ©   (2006-02-17 16:49) [15]

Код очень большой, весь здесь не поместиться :((
приведу выдержки.
library TestLib;

uses
 //ShareMem,
 SysUtils,
 Windows,
 Classes,
........
 WinCrypt in "WinCrypt.pas";

{$R *.res}

begin

end.
//////////////////////////////////////////////////////////////////////////////

unit WinCrypt;

interface

uses Windows;
.............................................

function CryptAcquireContextA(
 var phProv: HCRYPTPROV;
 szContainer: LPCSTR;
 szProvider: LPCSTR;
 dwProvType: DWORD;
 dwFlags: DWORD
 ): BOOL; stdcall;
...........................................
{$IFDEF UNICODE}
function CryptAcquireContext; external ADVAPI32 name "CryptAcquireContextW";
{$ELSE}
function CryptAcquireContext; external ADVAPI32 name "CryptAcquireContextA";
{$ENDIF} // !UNICODE
.....................................................
end.


 
Игорь Шевченко ©   (2006-02-17 16:56) [16]

pargo ©   (17.02.06 16:49) [15]

Убери

SysUtils и Classes из

uses
//ShareMem,
SysUtils,
Windows,
Classes,

Если код очень большой, то сделай его маленьким и проверь утверждение


> Библиотека при згрузке не выполняет никаких действий,
> кроме того, что в ней есть функции типа: function SamFunction;
>  external ADVAPI32;


 
pargo ©   (2006-02-17 16:58) [17]

Игорь Шевченко ©   (17.02.06 16:56) [16]
Спасибо, попробую.


 
RO   (2006-02-17 17:01) [18]

Если то был ты, Игорь - прекращаю.


 
Игорь Шевченко ©   (2006-02-17 17:08) [19]


> Если то был ты, Игорь - прекращаю.


С просьбой - Я.


 
pargo ©   (2006-02-17 17:33) [20]

Игорь Шевченко ©   (17.02.06 16:56) [16]
Огромное спасибо ! Помогло: "Если код очень большой, то сделай его маленьким"
В одном из присоединяемых юнитов в uses оказался ShareMem.
( Убей бог, не помню зачем я его туда засунул :)) )
Убрал и все заработало.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2006.03.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.012 c
2-1141053632
SMAC
2006-02-27 18:20
2006.03.19
FileRead(Write)


15-1140725504
Piter
2006-02-23 23:11
2006.03.19
Обрушилась крыша на Басманном рынке


11-1121813528
lundeholm
2005-07-20 02:52
2006.03.19
Want a simple KOLFTP example


15-1140872613
SergP.
2006-02-25 16:03
2006.03.19
Как правильно пишется?


15-1140421884
Knight
2006-02-20 10:51
2006.03.19
Помогите выбрать мать...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский