Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2017.03.19;
Скачать: CL | DM;

Вниз

Не пойму в чем проблема Array and Char   Найти похожие ветки 

 
Wadimkas   (2015-07-13 17:30) [0]

Есть функция

function GetSystemUserName: string;
var // Получить имя пользователя машины
 UserName: array[0..255] of Char;
 UserNameSize: DWORD;
begin
 UserNameSize := 255;
 if Windows.GetUserName(@UserName, UserNameSize) then
   Result := string(UserName)
 else
   Result := "";
end;

В нескольких моих прогах, все работает,
в одной не компилится, ошибка на @UserName что она array and Char
так прикол в том, что загружаю те проекты где они используются, все норм компилится.


 
кгшзх ©   (2015-07-13 17:47) [1]

function GetSystemUserName : Ansistring;
var UserNameSize: Cardinal;
begin
Result := "";
UserNameSize := 0;
if not GetUserName(nil, UserNameSize) and (GetLastError = ERROR_INSUFFICIENT_BUFFER) then
 begin
  SetLength(Result, UserNameSize);
  GetUserName(PAnsiChar(Result), UserNameSize);
 end;
end;


 
Wadimkas   (2015-07-13 17:54) [2]

Благодарствую, вот только прикола не понял, в одной компилится а в другой нет?
но там где компилится все работает!


 
кгшзх ©   (2015-07-13 18:37) [3]

там где не компилится  - там юзез другой.


 
sniknik ©   (2015-07-13 18:39) [4]

дельфя то какая? может с юникодом связано/где то путаница... попробуй везде явно тип ставить/вызывать ансишную функцию -
function GetSystemUserName: AnsiString;
var // Получить имя пользователя машины
UserName: array[0..255] of AnsiChar;
UserNameSize: DWORD;
begin
UserNameSize := 255;
if Windows.GetUserNameA(@UserName, UserNameSize) then
  Result := UserName
else
  Result := "";
end;


 
Wadimkas   (2015-07-13 18:44) [5]

Delphi 7
Ругаецо именно на @UserName, а она в var`e UserName: array[0..255] of AnsiChar;


 
Wadimkas   (2015-07-13 18:45) [6]

сории Char;


 
Wadimkas   (2015-07-13 18:46) [7]

ну ругается она не в типе, а то что хочет char, а я типа ей даю array


 
кгшзх ©   (2015-07-13 19:00) [8]

для начала посмотри что хочет первым параметром GetUserName.
и что даешь ей ты.


 
кгшзх ©   (2015-07-13 19:08) [9]

пофик какая делфи (с анси вариантом).
либо юзез, либо пересечение одноименных идентификаторов
либо здесь приведен один код, а реально некомпилится совсем другой.


 
кгшзх ©   (2015-07-13 19:14) [10]

Ругаецо именно на @UserName

Там где ругаетсо - там есть еще один идентификатор UserName.


 
Wadimkas   (2015-07-13 19:14) [11]

код даже не копирывался, копирывал весь unit в другой проект


 
кгшзх ©   (2015-07-13 19:17) [12]

все варианты в чем причина тебе уже рассказали.

а ты настаиваешь на влиянии волшебства и магии.


 
sniknik ©   (2015-07-13 20:11) [13]

> ну ругается она не в типе, а то что хочет char, а я типа ей даю array
ты ей даешь не array, а указатель, который в принципе автоконвертируется в нужное в функции PAnsiChar (то что в [4]), ну блин для полной гарантии можно явно переопределить -
Windows.GetUserNameA(PAnsiChar(@UserName), UserNameSize)
хотя, то что у тебя продолжает требовать именно char, а не pchar (как в генофонде), явно указывает, что функция переопределена.

> все варианты в чем причина
+
переопределен тип char/... либо сам, либо в подключаемом модуле


 
sniknik ©   (2015-07-13 20:13) [14]

++
кстати, приведи точный текст ошибки. не "что то вроде", а конкретно... если трудно по буквам перерисуй. или скрин сделай.


 
Wadimkas   (2015-07-13 20:14) [15]

)))да я не спорю, твой код помог
но его я заменил только в юните скопированном
то что все рассказали, не то все
UserName - локальная переменка, чисто в этой функции и ссылается на массив @UserName

который char


 
кгшзх ©   (2015-07-13 20:29) [16]

при чем здесь код, который помог?

речь об источнике ошибки.
возможные причины тебе назвали.
но тебе пофик, и ты продолжаешь читать мантру "ну как это так, ничего не менял, просто скопировал и не компилируется"

причины тебе назвали, а ты талдычишь, у меня все окей, у меня юзернэйм - это локальный массив. это виноваты демоны.

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


 
Wadimkas   (2015-07-13 20:39) [17]

))))
ладно замяли тему, мне она уже не интересна
полтергейст не там


 
Игорь Шевченко ©   (2015-07-13 22:44) [18]

http://segfault.kiev.ua/smart-questions-ru.html



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

Текущий архив: 2017.03.19;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.005 c
1-1349853892
mfender
2012-10-10 11:24
2017.03.19
Переменные из окна браузера


1-1348636173
Дмитрий Белькевич
2012-09-26 09:09
2017.03.19
Как включить scroollbars у TShellTreeView?


2-1436292854
vadim83
2015-07-07 21:14
2017.03.19
Вопрос по CenteredRect


2-1436797835
Wadimkas
2015-07-13 17:30
2017.03.19
Не пойму в чем проблема Array and Char


2-1436212529
Дмитрий С
2015-07-06 22:55
2017.03.19
Сравнение Double