Вызов Cstring ClarionDll из шарпа

Разработка программ на пес его знает на чем
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
seawolf
Активист
Сообщения: 198
Зарегистрирован: 08 Июль 2005, 10:23
Откуда: St. Petersburg

Вызов Cstring ClarionDll из шарпа

Сообщение seawolf »

Коллеги, много раз дела clarion Dll и всегда проблем с принятием вызова адреса строки из C++ или Delphi не было (вызов описывается двумя параметрами размер и адрес) Сейчас dll пытаются дернуть из Шарпа и дело не идет кусок кода даю:

[DllImport("TgtLicGen.dll", CharSet=CharSet.Ansi, CallingConvention = CallingConvention.Cdecl, ExactSpelling=true, EntryPoint="TGTLG_OPENPOSTDB")]
private static extern int TGTLG_OpenPostDb([MarshalAs(UnmanagedType.LPStr)] ref StringBuilder str);

static void Main(string[] args)
{
StringBuilder path = new StringBuilder(@"e:\WORK\TGT\tgtLicGen_06032012\TGTMAILSERVERPOST.TPS", 512);
int success = TGTLG_OpenPostDb(ref path);
Console.WriteLine(success);
Console.WriteLine(path);


На Clarion функция которую вызывают такая - TGTLG_OpenPostDb(*CSTRING),LONG,PASCAL
Я с шарпом пока не знаком так что кто поможет подружить нас? Меня смущает TGTLG_OpenPostDb(ref path) дается один параметр строки

Аватара пользователя
Andrew Listiev
Активист
Сообщения: 160
Зарегистрирован: 07 Июль 2005, 10:16
Откуда: Латвия, Рига

Re: Вызов Cstring ClarionDll из шарпа

Сообщение Andrew Listiev »

[DllImport("TgtLicGen.dll", CharSet=CharSet.Ansi, CallingConvention = CallingConvention.Cdecl, ExactSpelling=true, EntryPoint="TGTLG_OPENPOSTDB")]
private static extern int TGTLG_OpenPostDb([MarshalAs(UnmanagedType.LPStr)] ref StringBuilder str);
TGTLG_OpenPostDb(*CSTRING),LONG,PASCAL
Разница с конвенции

seawolf
Активист
Сообщения: 198
Зарегистрирован: 08 Июль 2005, 10:23
Откуда: St. Petersburg

Re: Вызов Cstring ClarionDll из шарпа

Сообщение seawolf »

а можно мне подробнее сказать чего там надо написать в конвенции на шарпе?

Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2427
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

Re: Вызов Cstring ClarionDll из шарпа

Сообщение Дед Пахом »

CallingConvention.StdCall
С уважением, ДП

Ответить