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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.08.2008, 18:59   #1
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию Пишу DLL в Delphi.Вызываю функцию в С.Не работает

Код дельфи
Код:
library Project1;
uses
  SysUtils,
  Classes,Graphics,dialogs;
Function Invert(OldFile:string;NewFile:string):integer;
begin
Showmessage(newFile+'  '+Oldfile);
result:=0;
end;
exports
Invert name 'Invert';
begin
end.
Код С
Код:
 Сallfunction ( 'Invert' , 'c:/1.bmp' , 'c:/2.bmp' )
выдает ошибку
Цитата:
An attempted read or write to/from an address to which that process isn't allowed
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 25.08.2008, 20:04   #2
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Как насчет соглашений о вызовах ?
В Delphi по умолчанию register;

не помню для С
Function Invert(OldFile:string;NewFile:strin g):integer; stdcall;
или
Function Invert(OldFile:string;NewFile:strin g):integer; cdecl;

----------
Думаю cdecl подойдет:

Код:
 //|Директива  |  Порядок следования|Очистка стека    |Использование
 //|           |  параметров        |                 |регистров
 //|-----------------------------------------------------------------
 //| register  | Слева направо      |Вызываемый метод |    +
 //| pascal    | Слева направо      |Вызываемый метод |    -
 //| cdecl     | Справа налево      |Вызывающий метод |    -
 //| stdcall   | Справа налево      |Вызываемый метод |    -
 //| safecall  | Справа налево      |Вызываемый метод |    -

Последний раз редактировалось alexBlack; 25.08.2008 в 20:20.
alexBlack вне форума Ответить с цитированием
Старый 25.08.2008, 20:19   #3
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

тажа ошибка
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 26.08.2008, 10:10   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

String замени на PChar
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.08.2008, 10:17   #5
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Спасибо!!!
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пишу Media Player (помогите) Delphi Reani Помощь студентам 4 12.06.2008 11:51
Делаю сайты, пишу маленькие/большие скрипты. Пишу веб-приложения и приложения под Windows. SkyM@n Фриланс 3 29.12.2007 16:21