![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Access violation... [D7, WinXP]
Linuxoid © (2003-08-31 15:42:00)
Вобщем, такая проблема - пишу код:
...
function PdhOpenQuery(pReserved:pointer;dwUserData:dword;HQUERY:thandle): longint; stdcall; external "pdh.dll";
...
procedure TForm1.FormCreate(Sender: TObject);
var a: thandle;
begin
if PdhOpenQuery(nil, 1, a)=error_success then edit1.text:="";
end;
...
И вроде, функция правильно срабатывает, возвращая 0, но при закрытии проги возникают сообщения вроде "Access violation..." Если а - глобальная переменная, то эти ошибки возникают сразу при старте проги. :(
Ык (2003-09-01 20:11:00) [1]
Бред какой-то
Linuxoid (2003-09-01 18:08:00) [2]
Вот как надо было объявить, теперь все работает :)
type e=^thandle;
function PdhOpenQuery(pReserved:pointer;dwUserData:dword; out HQUERY:e): longint; stdcall; external "pdh.dll";
PdhOpenQuery(nil, 1, @a);
Anatoly Podgoretsky (2003-08-31 22:42:00) [3]
Вероятно это тоже правильно, но надо видеть оригинальное объявление. А вот это outуже существеннее.
Ык (2003-08-31 22:16:00) [4]
function PdhOpenQuery(pReserved:pointer;dwUserData:dword; out HQUERY:thandle): longint{?}; stdcall{?}; external "pdh.dll";
Linuxoid (2003-08-31 17:44:00) [5]
Вот описание этой функци, может быть, какие-нибудь параметры неправильно объявляю или передаю...
PDH_STATUS PdhOpenQuery(
IN LPVOID pReserved, // reserved
IN DWORD dwUserData, // a value associated with this query
IN HQUERY *phQuery // pointer to a buffer that will receive the query handle
);
pReserved
Reserved. Must be NULL.
dwUserData
A user-defined DWORD value that is to be associated with this query. You can call PdhGetCounterInfo to retrieve the user data value for the query in which a counter resides.
phQuery
A pointer to the buffer to receive the handle to the query that is created.
Anatoly Podgoretsky (2003-08-31 16:24:00) [6]
Ты хочешь узнать есть ли здесь ошибка, ошибки здесь нет.