Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.08.2009, 17:13   #1
Arxangelname
Пользователь
 
Аватар для Arxangelname
 
Регистрация: 12.03.2009
Сообщений: 30
По умолчанию Народ кто понимает в написании ДЛЛ

Написал код и не могу понять в чем проблема
Правда я сегодня первый раз пишу ДЛЛ шник

l
Код:
ibrary speak_date;

uses
  SysUtils,  Classes;

type
speak = class

public
function addyear(s:string):string;
end;
var
stDay : array[1..7] of string[11] = ('âîñêðåñåíüå','ïîíåäåëüíèê','âòîðíèê',
                                     'ñðåäà','÷åòâåðã','ïÿòíèöà','ñóááîòà');
stMonth : array[1..12] of string[8] = ('ÿíâàðÿ','ôåâðàëÿ','ìàðòà',
                                       'àïðåëÿ','ìàÿ','èþíÿ','èþëÿ',
                                       'àâãóñòà','ñåíòÿáðÿ','îêòÿáðÿ',
                                       'íîÿáðÿ','äåêàáðÿ');
Stdat: array[1..31] of string[18] = ('Ïåðâîå','Âòîðîå','Òðåòüå','×åòâåðòîå','Ïÿòîå',
                                    'Øåñòîå','Ñåäüìîå','Âîñüìîå','Äåâÿòîå',
                                    'Äåñÿòîå','Îäèíàäöàòîå','Äâèíàäöàòîå',
                                    'Òðèíàäöàòîå','×åòûðíàäöàòîå','Ïÿòíàäöàòîå',
                                    'Øåñòíàäöàòîå','Ñåìíäöàòîå','Âîñåìíàäöàòîå',
                                    'Äåâÿòíàäöàòîå','Äâàäòöàòîå',
                                    'Äâàäöàòü ïåðâîå','Äâàäöàòü âòîðîå',
                                    'Äâàäöàòü òðåòüå','Äâàäöàòü ÷åòâåðòîå',
                                    'Äâàäöàòü ïÿòîå','Äâàäöàòü øåñòîå',
                                    'Äâàäöàòü ñåäüìîå','Äâàäöàòü âîñüìîå',
                                    'Äâàäöàòü äåâÿòîå','Òðèäöàòîå','Òðèäöàòü ïåðâîå');

ytis: array[1..20] of string[14] = ('Îäíà','Äâå','Òðè','×åòûðå', 'Ïÿòü', 'Øåñòü',
                                  'Ñåìü','Âîñåìü','Äåâÿòü','Äåñÿòü','Îäèíàäöàòü',
                                  'Äâåíàäöàòü','Òðèíàäöàòü',
                                  '×åòûðíàäöàòü','Ïÿòíàäöàòü','Øåñòíàäöàòü',
                                  'ñåìüíàäöàòü','Âîñåìüíàäöàòü','Äåâÿòíàäöàòü',
                                  'Äâàòöàòü');

ycto: array[1..9] of string[9] = ('Ñòî','Äâåñòè','Òðèñòî','×åòûðèñòî', 'Ïÿòüñîò',
                               'Øåñòüñîò','Ñåìüñîò','Âîñåìüñîò','Äåâÿòüñîò');

y3: array[1..99] of string [23] = ('Ïåðâîãî','Âòîðîãî','Òðåòüåãî','×åòâåðòîãî',
'Ïÿòîãî','Øåñòîãî','Ñåäüìîãî','Âîñüìîãî','Äåâÿòîãî','Äåñÿòîãî','Îäèííàäöàòîãî',
'Äâåíàäöàòîãî','Òðèíàäöàòîãî','×åòûðíàäöàòîãî','Ïÿòíàäöàòîãî','Øåñòíàäöàòîãî',
'Ñåìíàäöàòîãî','Âîñåìíàäöàòîãî','Äåâÿòíàäöàòîãî','Äâàäöàòîãî','Äâàäöàòü ïåðâîãî',
'Äâàäöàòü Âòîðîãî','Äâàäöàòü Òðåòüåãî','Äâàäöàòü ×åòâåðòîãî','Äâàäöàòü Ïÿòîãî',
'Äâàäöàòü Øåñòîãî','Äâàäöàòü Ñåäüìîãî','Äâàäöàòü Âîñüìîãî','Äâàäöàòü Äåâÿòîãî',
'Òðèäöàòîãî','Òðèäöàòü Ïåðâîãî','Òðèäöàòü Âòîðîãî','Òðèäöàòü Òðåòüåãî',
'Òðèäöàòü ×åòâåðòîãî','Òðèäöàòü Ïÿòîãî','Òðèäöàòü Øåñòîãî','Òðèäöàòü Ñåäüìîãî',
'Òðèäöàòü Âîñüìîãî','Òðèäöàòü Äåâÿòîãî','Ñîðîêîâîãî','Ñîðîê Ïåðâîãî',
'Ñîðîê Âòîðîãî','Ñîðîê Òðåòüåãî','Ñîðîê ×åòâåðòîãî','Ñîðîê Ïÿòîãî',
'Ñîðîê Øåñòîãî','Ñîðîê Ñåäüìîãî','Ñîðîê Âîñüìîãî','Ñîðîê Äåâÿòîãî',
'Ïÿòèäåñÿòîãî','Ïÿòüäåñÿò Ïåðâîãî','Ïÿòüäåñÿò Âòîðîãî','Ïÿòüäåñÿò Òðåòüåãî',
'Ïÿòüäåñÿò ×åòâåðòîãî','Ïÿòüäåñÿò Ïÿòîãî','Ïÿòüäåñÿò Øåñòîãî','Ïÿòüäåñÿò Ñåäüìîãî',
'Ïÿòüäåñÿò Âîñüìîãî','Ïÿòüäåñÿò Äåâÿòîãî','Øåñòèäåñÿòîãî','Øåñòüäåñÿò Ïåðâîãî',
'Øåñòüäåñÿò Âòîðîãî','Øåñòüäåñÿò Òðåòüåãî','Øåñòüäåñÿò ×åòâåðòîãî',
'Øåñòüäåñÿò Ïÿòîãî','Øåñòüäåñÿò Øåñòîãî','Øåñòüäåñÿò Ñåäüìîãî','Øåñòüäåñÿò Âîñüìîãî',
'Øåñòüäåñÿò Äåâÿòîãî','Ñåìèäåñÿòîãî','Ñåìüäåñÿò Ïåðâîãî','Ñåìüäåñÿò Âòîðîãî',
'Ñåìüäåñÿò Òðåòüåãî','Ñåìüäåñÿò ×åòâåðòîãî','Ñåìüäåñÿò Ïÿòîãî','Ñåìüäåñÿò Øåñòîãî',
'Ñåìüäåñÿò Ñåäüìîãî','Ñåìüäåñÿò Âîñüìîãî','Ñåìüäåñÿò Äåâÿòîãî','Âîñüìèäåñÿòîãî',
'Âîñåìüäåñÿò Ïåðâîãî','Âîñåìüäåñÿò Âòîðîãî','Âîñåìüäåñÿò Òðåòüåãî',
'Âîñåìüäåñÿò ×åòâåðòîãî','Âîñåìüäåñÿò Ïÿòîãî','Âîñåìüäåñÿò Øåñòîãî',
'Âîñåìüäåñÿò Ñåäüìîãî','Âîñåìüäåñÿò Âîñüìîãî','Âîñåìüäåñÿò Äåâÿòîãî',
'Äåâÿíîñòîãî','Äåâÿíîñòî Ïåðâîãî','Äåâÿíîñòî Âòîðîãî','Äåâÿíîñòî Òðåòüåãî',
'Äåâÿíîñòî ×åòâåðòîãî','Äåâÿíîñòî Ïÿòîãî','Äåâÿíîñòî Øåñòîãî','Äåâÿíîñòî Ñåäüìîãî',
'Äåâÿíîñòî Âîñüìîãî','Äåâÿíîñòî Äåâÿòîãî');
{$R *.res}

function speak.addyear(s:string):string;
var
x1,x2,x3: string;
c1,c2,c3: string;
i: integer;
Present: TDateTime;
Year, Month, Day : Word;
begin
Present:= Now;
DecodeDate(Present, Year, Month, Day);
c1:= copy(s,1,1);
c2:= copy(s,2,1);
c3:= copy(s,3,2);
i:= StrToInt(c3);
if c1 = '0' then
x1:=' ' else
begin
if c1='1' then
x1:= ytis[1]+' òûñÿ÷à' else
begin
if c1 = '2' then
x1:=ytis[2]+' òûñÿ÷è' else
begin
if strtoint(c1) <=4 then
x1:=ytis[strtoint(c1)]+' òûñÿ÷è' else
x1:=ytis[strtoint(c1)]+' òûñÿ÷ü';
end;
end;
end;
if c2 = '0' then
x2:='' else
x2:= ycto[strtoint(c2)];
if i = 00 then
x3:= ' ' else
x3:= y3[i];
Result:='Ñåãîäíÿ, '+stdat[day]+' '+ stmonth[month]+' '+
x1+' '+x2+' '+x3+' ãîäà'+', '+ stDay[DayOfWeek(Present)];
end;

exports addyear;

begin
end.
и выдает ошибку
[Error] speak_date.dpr(107): Undeclared identifier: 'addyear'

Последний раз редактировалось Stilet; 06.08.2009 в 09:14.
Arxangelname вне форума Ответить с цитированием
Старый 05.08.2009, 17:27   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Уберите класс speak. Просто опишите не как
Код:
function speak.addyear(s:string):string;
а, без класса, вот так
Код:
function addyear(s:string):string;
BOBAH13 вне форума Ответить с цитированием
Старый 05.08.2009, 17:30   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Кстати, когда копируете код из Делфи, содержащий русские символы, переключайте раскладку клавиатуры на русскую, а то смотреть страшно, что Вы тут выложили.
puporev вне форума Ответить с цитированием
Старый 05.08.2009, 17:31   #4
NieL
Форумчанин
 
Регистрация: 17.11.2008
Сообщений: 116
По умолчанию

Вот так надо:

Код:
library speak_date;

uses
SysUtils, Classes;

type
  speak = class
  public
    function addyear(s:string):string;
  end;

var
  FSpeak: Speak;

  stDay : array[1..7] of string[11] = ('aine?anaiua','iiiaaaeuiee','aoi?i ee',
    'n?aaa','?aoaa?a','iyoieoa','noaaio a');
  stMonth : array[1..12] of string[8] = ('yiaa?y','oaa?aey','ia?oa',
    'ai?aey','iay','e?iy','e?ey', 'aaaonoa','naioya?y','ieoya?y', 'iiya?y','aaeaa?y');
Stdat: array[1..31] of string[18] = ('Ia?aia','Aoi?ia','O?aoua','?aoaa? oia','Iyoia',
'Oanoia','Naauiia','Ainuiia','Aaayo ia',
'Aanyoia','Iaeiaaoaoia','Aaeiaaoaoi a',
'O?eiaaoaoia','?aou?iaaoaoia','Iyoi aaoaoia',
'Oanoiaaoaoia','Naiiaoaoia','Ainaii aaoaoia',
'Aaayoiaaoaoia','Aaaaooaoia',
'Aaaaoaou ia?aia','Aaaaoaou aoi?ia',
'Aaaaoaou o?aoua','Aaaaoaou ?aoaa?oia',
'Aaaaoaou iyoia','Aaaaoaou oanoia',
'Aaaaoaou naauiia','Aaaaoaou ainuiia',
'Aaaaoaou aaayoia','O?eaoaoia','O?eaoaou ia?aia');

ytis: array[1..20] of string[14] = ('Iaia','Aaa','O?e','?aou?a', 'Iyou', 'Oanou',
'Naiu','Ainaiu','Aaayou','Aanyou',' Iaeiaaoaou',
'Aaaiaaoaou','O?eiaaoaou',
'?aou?iaaoaou','Iyoiaaoaou','Oanoia aoaou',
'naiuiaaoaou','Ainaiuiaaoaou','Aaay oiaaoaou',
'Aaaooaou');

ycto: array[1..9] of string[9] = ('Noi','Aaanoe','O?enoi','?aou?enoi ', 'Iyounio',
'Oanounio','Naiunio','Ainaiunio','A aayounio');

y3: array[1..99] of string [23] = ('Ia?aiai','Aoi?iai','O?aouaai','?a oaa?oiai',
'Iyoiai','Oanoiai','Naauiiai','Ainu iiai','Aaayoiai','Aanyoiai','Iaeiia aoaoiai',
'Aaaiaaoaoiai','O?eiaaoaoiai','?aou ?iaaoaoiai','Iyoiaaoaoiai','Oanoiaa oaoiai',
'Naiiaaoaoiai','Ainaiiaaoaoiai','Aa ayoiaaoaoiai','Aaaaoaoiai','Aaaaoao u ia?aiai',
'Aaaaoaou Aoi?iai','Aaaaoaou O?aouaai','Aaaaoaou ?aoaa?oiai','Aaaaoaou Iyoiai',
'Aaaaoaou Oanoiai','Aaaaoaou Naauiiai','Aaaaoaou Ainuiiai','Aaaaoaou Aaayoiai',
'O?eaoaoiai','O?eaoaou Ia?aiai','O?eaoaou Aoi?iai','O?eaoaou O?aouaai',
'O?eaoaou ?aoaa?oiai','O?eaoaou Iyoiai','O?eaoaou Oanoiai','O?eaoaou Naauiiai',
'O?eaoaou Ainuiiai','O?eaoaou Aaayoiai','Ni?ieiaiai','Ni?ie Ia?aiai',
'Ni?ie Aoi?iai','Ni?ie O?aouaai','Ni?ie ?aoaa?oiai','Ni?ie Iyoiai',
'Ni?ie Oanoiai','Ni?ie Naauiiai','Ni?ie Ainuiiai','Ni?ie Aaayoiai',
'Iyoeaanyoiai','Iyouaanyo Ia?aiai','Iyouaanyo Aoi?iai','Iyouaanyo O?aouaai',
'Iyouaanyo ?aoaa?oiai','Iyouaanyo Iyoiai','Iyouaanyo Oanoiai','Iyouaanyo Naauiiai',
'Iyouaanyo Ainuiiai','Iyouaanyo Aaayoiai','Oanoeaanyoiai','Oanouaan yo Ia?aiai',
'Oanouaanyo Aoi?iai','Oanouaanyo O?aouaai','Oanouaanyo ?aoaa?oiai',
'Oanouaanyo Iyoiai','Oanouaanyo Oanoiai','Oanouaanyo Naauiiai','Oanouaanyo Ainuiiai',
'Oanouaanyo Aaayoiai','Naieaanyoiai','Naiua anyo Ia?aiai','Naiuaanyo Aoi?iai',
'Naiuaanyo O?aouaai','Naiuaanyo ?aoaa?oiai','Naiuaanyo Iyoiai','Naiuaanyo Oanoiai',
'Naiuaanyo Naauiiai','Naiuaanyo Ainuiiai','Naiuaanyo Aaayoiai','Ainuieaanyoiai',
'Ainaiuaanyo Ia?aiai','Ainaiuaanyo Aoi?iai','Ainaiuaanyo O?aouaai',
'Ainaiuaanyo ?aoaa?oiai','Ainaiuaanyo Iyoiai','Ainaiuaanyo Oanoiai',
'Ainaiuaanyo Naauiiai','Ainaiuaanyo Ainuiiai','Ainaiuaanyo Aaayoiai',
'Aaayiinoiai','Aaayiinoi Ia?aiai','Aaayiinoi Aoi?iai','Aaayiinoi O?aouaai',
'Aaayiinoi ?aoaa?oiai','Aaayiinoi Iyoiai','Aaayiinoi Oanoiai','Aaayiinoi Naauiiai',
'Aaayiinoi Ainuiiai','Aaayiinoi Aaayoiai');
{$R *.res}

function speak.addyear(s:string):string;
var
x1,x2,x3: string;
c1,c2,c3: string;
i: integer;
Present: TDateTime;
Year, Month, Day : Word;
begin
Present:= Now;
DecodeDate(Present, Year, Month, Day);
c1:= copy(s,1,1);
c2:= copy(s,2,1);
c3:= copy(s,3,2);
i:= StrToInt(c3);
if c1 = '0' then
x1:=' ' else
begin
if c1='1' then
x1:= ytis[1]+' ouny?a' else
begin
if c1 = '2' then
x1:=ytis[2]+' ouny?e' else
begin
if strtoint(c1) <=4 then
x1:=ytis[strtoint(c1)]+' ouny?e' else
x1:=ytis[strtoint(c1)]+' ouny?u';
end;
end;
end;
if c2 = '0' then
x2:='' else
x2:= ycto[strtoint(c2)];
if i = 00 then
x3:= ' ' else
x3:= y3[i];
Result:='Naaiaiy, '+stdat[day]+' '+ stmonth[month]+' '+
x1+' '+x2+' '+x3+' aiaa'+', '+ stDay[DayOfWeek(Present)];
end;

function addyear(s: string): string;
begin
  Result := FSpeak.addyear(s);
end;

exports
addyear;

begin
end.
NieL вне форума Ответить с цитированием
Старый 05.08.2009, 17:43   #5
Arxangelname
Пользователь
 
Аватар для Arxangelname
 
Регистрация: 12.03.2009
Сообщений: 30
По умолчанию

спасибо большое народ а за раскладку всякой белеберды извините
Arxangelname вне форума Ответить с цитированием
Старый 05.08.2009, 21:45   #6
Sergey2
Форумчанин
 
Регистрация: 08.01.2008
Сообщений: 233
По умолчанию

Вообще передавтаь стринг и получать его из длл это, мягко говоря, плохой тон. Может работать и будет, но иногда. Надо юзать pchar.
У стринга размер неизвестен. Либо указатели, либо типы с фиксированным размером.
Sergey2 вне форума Ответить с цитированием
Старый 05.08.2009, 22:44   #7
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

uses sharemem, ...;
Alter вне форума Ответить с цитированием
Старый 06.08.2009, 20:38   #8
QunneD
C++ &amp;amp; PHP &amp;amp; Asm
Форумчанин
 
Аватар для QunneD
 
Регистрация: 06.12.2008
Сообщений: 300
По умолчанию

Sharemem чаще всего при завершении будет выдавать Runtime ошибки. Если текст не очень большой, то можно использовать ShortString. Работает как часы
QunneD вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Народ!! Кто чем сможет помочь в решении задач?? Vitruvian Фриланс 15 14.07.2009 22:19
Ребята, кто сможет помочь в написании JAVA кода? Kokakola Помощь студентам 0 07.05.2009 10:21
помогите кто понимает циклы любаша Помощь студентам 4 09.01.2009 15:05
Народ расскажите кто нужен для создания игры и кто что делает Kosoy135 Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 16.09.2007 18:59