Вызов Cstring ClarionDll из шарпа
Добавлено: 07 Март 2012, 13:38
Коллеги, много раз дела 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) дается один параметр строки
[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) дается один параметр строки