Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Delphi. Build warning. Как победить? (http://forum.oszone.net/showthread.php?t=29393)

IkaMazini 10-10-2004 12:46 203683

По-моему вы понимайте, что здесь происходит.
Объясните, пожалуйста, почему опасный кодекс “@ operator”. *

Цитата:

Uses WinInet;
……………………………..
procedure TForm1.Button6Click(Sender: TObject);
var
* *dwConnectionTypes: DWORD;
begin
*if not InternetGetConnectedState(@dwConnectionTypes,0) then
begin
*if MessageDlg('Internet Connection Not Execute, Please Check Connection!'
* ,Mtinformation,[mbOk],0)=mrOk then
*Exit;
* *end;
*end;
end;



Build
*[Warning] Unit1.pas(273): Unsafe code '@ operator'

Добавлено:

Как можно ето исправить?

Prisoner 10-10-2004 18:52 203684

Модератор
 
А чего в помощь сначала не смотрим? Там ясно сказано, что @ это оператор возвращающий (в вашем случае) адрес переменной указанной после него (см. help Delphi Language Reference). В другом файле справки (Delphi Compiler Messages & Warnings) не менее ясно описано почему так происходит:
Цитата:

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.
Имхо, ничего страшного тут нет, ворнинги они на то и ворнинги, что не ерроры :). Стоит лишь подумать а так ли оно нужно применение этого оператора. Можно посоветовать поглядеть описание функции  InternetGetConnectedState и увидеть, что она принимает два аргумента: LPDWORD и DWORD. Первый это указатель, судя по всему на DWORD (И судя по всему длинный). Так заведите себе этот указатель заставьте его указывать на нужное вам значение и передавайте в функцию... И еще, чеснослово, больше делайте самостоятельных вещей, на форум только в безвыходной ситуации, форум он не учебное заведение, скоро на ваши вопросв перестанут отвечать, как поймут, что это безперспективно.
P.S. Пишу здесь ибо по мылу связаться с вами нельзя, безответное оно...

IkaMazini 10-10-2004 19:53 203685

Prisoner это что я и хочу сделать, моя первая (если можно называть) программа,
и … Вы понимайте да, что я нуждаюсь помощь. :) потому и беспокою вас. *Не злитеc пожалуйста. :shuffle:

Prisoner 11-10-2004 05:07 203686

В общем читаем ОПК и ПФП , думаем, проникаемся благоговейным ужасом и знаем, что промахи будут фатальны.


Время: 10:16.

Время: 10:16.
© OSzone.net 2001-