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

Вниз

Что такое Unsafe type Pointer   Найти похожие ветки 

 
Viktor   (2003-12-23 22:15) [0]

Здравствуйте Мастера! При компиляции DLL в ХР выскакивает это предупреждение. Из справки я понял, что это потенциально опасно.Что сделать что бы его не было. Вот код.
Форма в библиотеке:

unit ulogin;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons,ComCtrls, ExtCtrls,Dialogs, Variants, DB, DBTables,
jpeg,uLoginData;
type
TPasswordDlg = class(TForm)
Label1: TLabel;
OKBtn: TButton;
CancelBtn: TButton;
Label2: TLabel;
Bevel1: TBevel;
Password: TEdit;
Label3: TLabel;
Login: TEdit;
procedure OKBtnClick(Sender: TObject);
procedure CancelBtnClick(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
LoginData:TLoginData;
{ Public declarations }
end;

procedure ShowLoginDialog(Handle:THandle;P:Pointer);
var
PasswordDlg: TPasswordDlg;

implementation

{$R *.dfm}

procedure ShowLoginDialog(Handle:THandle;P:Pointer);
begin
Application.Handle:=Handle;
PasswordDlg:=TPasswordDlg.Create(Application);
PasswordDlg.LoginData:=TLoginData(P);
with PasswordDlg do
begin
ShowModal;
Free;
end;
end;

А зто вызов из приложения

procedure TfMain.N11Click(Sender: TObject);
type
TShowLoginDialog=procedure(Handle:THandle;P:Pointer);
var
ShowLoginDialog:TShowLoginDialog;
k:integer;
begin
hLib:=LoadLibrary("c:\windows\system\login.dll");
if hLib<32 then
begin
ShowMessage("Error load DLL");
exit;
end;
ShowLoginDialog:=TShowLoginDialog(GetProcAddress(hLib,"ShowLoginDialog"));
LoginData:=TLoginData.Create;
ShowLoginDialog(Self.Handle,LoginData);
FreeLibrary(hLib);
end;


 
Юрий Зотов   (2003-12-23 23:33) [1]

Насколько я понял, если Вы не собираетесь использовать этот код под .NET, то на такое сообщение можно не обращать внимания. А отключается оно в опциях проекта (вкладка Compiler Messages, в списке снять галку у третьего снизу пункта).

Хотя ничто не мешает изменить тип параметра на TLoginData и обойтись без всяких Pointer"ов.

Последнее - объект TLoginData создается в EXE. А вот где и как он уничтожается? По идее, надо бы тоже в EXE, либо использовать ShareMem.


 
Viktor   (2003-12-23 23:47) [2]

Юрий Зотов! Спасибо все понял


 
3APA3A   (2003-12-24 00:48) [3]

to Юрий Зотов - а при чем здесь .NET? То есть, почему под .NET так нельзя делать?


 
Юрий Зотов   (2003-12-24 00:54) [4]

> 3APA3A © (24.12.03 00:48) [3]

Я просто посмотрел справку (compiler errors):

You have used a data type or operation for which static code analysis cannot prove that it does not overwrite memory. In a secured execution environment such as .NET, such code is assumed to be unsafe and a potential security risk.


 
3APA3A   (2003-12-24 01:11) [5]

Ясно... мораль - чаще жмите F1 - интересные же вещи пишут.. =)))



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

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

Наверх





Память: 0.45 MB
Время: 0.025 c
3-25181
visnuk
2003-12-08 12:43
2004.01.09
Кто работал с DBComboBox при работе с БД


1-25304
SoS
2003-12-22 18:35
2004.01.09
А где взять TSpinEdit ?


1-25345
Ил_204
2003-12-22 10:21
2004.01.09
Проблема с остановкой потока


3-25205
jonik_jj
2003-12-11 17:44
2004.01.09
DevExpress- Проблемы с TdxDBLookupEdit


1-25369
Код символа
2003-12-25 05:01
2004.01.09
Как узнать код символа?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский