У меня есть некоторые проблемы с передачей данных для импортированного ActiveX управления delphi в среде C#.Передача Delphi PChar на C#
У меня есть функция на стороне delphi, которая берет и возвращает PChar. Я могу изменить его или сделать с ним все, что захочу.
function TActiveFormX.DelphiFunction(S: PChar): PChar;
begin
///do something with 'S'
result:=S;
end;
А на C# стороне программы является функцией, которая вызывает функцию Дельфы, придавая ему строковый параметр, чтобы пережевать.
public void CSharpFunction()
{
string a = axActiveFormX1.DelphiFunction("sampleString");
}
Я протестировал его, и, очевидно, все идет хорошо, пока C# не получит возвращенный PChar. Затем все приложение перестает отвечать и выходит. Я попытался реализовать блок try-catch, чтобы увидеть сообщение об исключении, но приложение просто сработает, прежде чем отображать что-либо.
Я полагаю, что он сбой из-за того, что переменные не были одного типа. Или из-за несоответствия версии жестокого программного обеспечения: Delphi 5 + Visual Studio 2012. Я искал это, но пока не повезло.
Любая помощь приветствуется :)
Просьба показать декларацию о DelphiFunction на стороне C# –
@ Давид Хеффернан, какую декларацию? Я новичок в деле Delphi-to-C# и не понимаю, о чем вы просите: D –
Вы указали код, вызывающий эту функцию. Но должен быть некоторый C#, который объявляет эту функцию. –