Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с DLL. Использование статистической загрузк 
:(
    Опции темы
ProgrammistDelphi
Дата 22.1.2005, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 19.1.2005

Репутация: нет
Всего: нет



Не могу вызвать свою процедуру из DLL файла.
Есть модуль библиотеки DLL

Код
library StrToChr;

uses
 ShareMem,
 SysUtils,
 Classes;

{$R *.res}

function StToChr(ss:String; b:integer):char; stdcall;
var
g: integer;
 Begin
   G:=Ord(ss[b]);  //получаем код символа
   Result:=CHR(G); //получаем символ по его коду
 end;

  Exports //экспортируем процедуру в  DLL
  StToChr;
begin
end.  :qstn

ВЫЗОВ И ЗПРОГРАММЫ

unit DinamilLabrory;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, FileCtrl;

type
 TForm1 = class(TForm)
   Edit1: TEdit;
   Label1: TLabel;
   Button1: TButton;
   disk: TDriveComboBox;
   procedure Button1Click(Sender: TObject);

 private
   { Private declarations }
 public

   { Public declarations }
 end;

var

 Form1: TForm1;


implementation

{$R *.dfm}

function StToChr(ss:string; b:integer):char; stdcall; External 'StrToChr.dll';

procedure TForm1.Button1Click(Sender: TObject);
var
b: integer;
rez: char;
ss: string;
begin
ss:=Trim(Edit1.Text);
b:=2;
rez:=StToChr(ss,b);
10: disk.Drive:=rez;
end;
end.


Дело не в преобразовании типа, а в вызове функции. Почему ошибка не могу понять. Ошибка тут GoTo10
PM MAIL   Вверх
FRAGNATIC
Дата 22.1.2005, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


..::Свирепый Кодер::..
**


Профиль
Группа: Участник
Сообщений: 901
Регистрация: 17.10.2004
Где: ICQ

Репутация: 6
Всего: 11



а по мойму нуда так
function StToChr(ss:String; b:integer):char; export; stdcall;
PM MAIL   Вверх
ProgrammistDelphi
Дата 23.1.2005, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 19.1.2005

Репутация: нет
Всего: нет



Неужели никто не знает? smile
PM MAIL   Вверх
p0s0l
Дата 23.1.2005, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



А что не работает-то ?
Какая ошибка ?
Твой код почти 1 в 1 скопировал, и работает нормально...



--------------------
С уважением, г-н Посол.
PM   Вверх
ProgrammistDelphi
Дата 23.1.2005, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 19.1.2005

Репутация: нет
Всего: нет



p0s0l

Та шут его знает ошибку вызывает и ссылается на строку с присвоением к переменной rez
PM MAIL   Вверх
p0s0l
Дата 23.1.2005, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Цитата(ProgrammistDelphi @ 23.1.2005, 12:44)
Та шут его знает ошибку вызывает
Издеваешься надо мной ? smile Я уже спросил: какую ошибку выдает ? Можешь написать ?

Если еще не добавлен, то попробуй добавить ShareMem самым первым в uses-часть твоего проекта (.dpr).

Добавлено @ 16:11
PS: привиденный в твоём посте код - это реальный код, или ты для показа на форуме вырезал остальную часть ?


--------------------
С уважением, г-н Посол.
PM   Вверх
ProgrammistDelphi
Дата 23.1.2005, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 19.1.2005

Репутация: нет
Всего: нет



p0s0l

Project xxxx raised exception class EAccesViolation with message '003320C5'.

Process stopped. Use Step or Run to continue.

Что интересно, если убераю последнюю строчку
Код
Disk.Drive:=Rez;

тогда, иногда выдаст ошибку, а иногда нет. Вот я и говорю фигня какая-то. smile

Это и есть реальный код. Просто захотелось вспомнить DLL, а то я усе из модулей да из модулей.
PM MAIL   Вверх
Unknown_Error
Дата 23.1.2005, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 3.1.2005

Репутация: нет
Всего: нет



Цитата(ProgrammistDelphi @ 22.1.2005, 21:38)
procedure TForm1.Button1Click(Sender: TObject);
var
b: integer;
rez: char;
ss: string;
begin
ss:=Trim(Edit1.Text);
b:=2;
rez:=StToChr(ss,b);
10: disk.Drive:=rez;
end;
end.

Я не могу понять причем здесь 10:
Наверное кейс тут был, да?
PM MAIL ICQ   Вверх
p0s0l
Дата 23.1.2005, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Ну тогда не знаю...
Скинь мне на мыло (кнопка E-Mail) исходники DLL и проекта (без самих .dll и .exe)...



--------------------
С уважением, г-н Посол.
PM   Вверх
ProgrammistDelphi
Дата 23.1.2005, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 19.1.2005

Репутация: нет
Всего: нет



10 это просто ссылка по тексту в программе этого нет!
PM MAIL   Вверх
Girder
Дата 24.1.2005, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


Профиль
Группа: Участник Клуба
Сообщений: 1993
Регистрация: 12.5.2004

Репутация: 31
Всего: 155



Код
function StToChr(ss:String; b:integer):char; stdcall;
Begin
if (b>0)and(b<=Length(ss)) then
 Result:=ss[b] else Result:=#0;
end;



--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.6457 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.