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

Вниз

Не пойму в чем проблема 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.001 c
2-1436292854
vadim83
2015-07-07 21:14
2017.03.19
Вопрос по CenteredRect


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


2-1436574544
Платинум
2015-07-11 03:29
2017.03.19
Посчитать 32-bit CRC


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


2-1435930281
Степанов Михаил В.
2015-07-03 16:31
2017.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
Английский Французский Немецкий Итальянский Португальский Русский Испанский