Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вызов функции из DLL 
V
    Опции темы
golfV
Дата 31.8.2011, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Доброго времени суток

Помогите справится с проблемой. Есть код на Си который вызывает функцию из DLL. Подскажите как его переписать на C#.

Сишный код
Код

const int repPATH_LENGTH = 260;
const int repERRORMSG_LENGTH = 340;

typedef char repPATH[repPATH_LENGTH+1];
typedef char repERRORMSG[repERRORMSG_LENGTH+1];



    MS_AAPI STATUS __stdcall
        SaveTestRecord(const repPATH Record,
        const repPATH Criteria,
        repERRORMSG StatusMsg);


пробовал так
Код

 [DllImport("C:\\Program files\\dll\\dll.dll", EntryPoint = "SaveTestRecord")]
        public static unsafe extern string SaveTestRecord(string ReportFile, string LimitFile, ref string Error)

pamSaveTestRecord("111", "111",ref Error);


выдает ошибку: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

Подскажите как правельно вызвать эту функцию на С#

Это сообщение отредактировал(а) golfV - 31.8.2011, 13:40
PM MAIL   Вверх
A5uKa
Дата 31.8.2011, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

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



Это явно не весь сишный код, а вообще не понятно конечно в чём дело, всё запутано.

Вынеси функцию с человеческими, а не переопределёнными аргументами в dll
PM   Вверх
golfV
Дата 31.8.2011, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



да в том то и дело что исходников Dll нету. Есть только такой пример вызова фйнкции из Dll
PM MAIL   Вверх
jonie
Дата 31.8.2011, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



Цитата

Код

typedef char repPATH[repPATH_LENGTH+1];

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

Это сообщение отредактировал(а) jonie - 31.8.2011, 15:25


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
golfV
Дата 31.8.2011, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Я с Си неочень дружу. я показал рабочий пример вызова функции из Dll. Мне надо эту функцию вызвать с помощью С#. Скорее всего ошибка из за неправельных типов переменных при вызове функции. Прбовал Byte[],Stringbuilder,char[]. Всегда одна и таже ошибка.
PM MAIL   Вверх
golfV
Дата 31.8.2011, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Всё проблема решена. Спасибо за помощь
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

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


 




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


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

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