Из Delphi в С#. Плагин к игре - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день ! хотел написать плагин к одной игре . Но вот не задача , что мануал написан был под Delph . Помогите адаптировать его под C# .Плагин получается как dll библиотека с WinForm.
// Функция возвращающая имя и версию плагина
function PluginVerifying: TPlugInfo;
begin
  // Возвращаем оболочке игрового клиента имя плагина
  Result.PluginName    := PLUGIN_NAME;
  // Возвращаем оболочке игрового клиента версию плагина
  Result.PluginVersion := PLUGIN_VERSION;
end;
 
// Процедура инициализации плагина
procedure PluginInitialization(PlugClass:TPlugInInterface);
var
  ResourceStream : Classes.TResourceStream;
begin
  // Создаём переменную класса визуальной информации плагина
  PlugInVisual  := TPlugInVisual.Create;
  // Свяжем указатель с глобальной переменной плагина
  PlugInterface := PlugClass;
 
  // Изменяем параметры плагина
  PlugInterface.ShortCut := Menus.TextToShortCut(PLUGIN_HOTKEY);
  PlugInterface.Caption  := PLUGIN_CAPTION;
 
  // Загружаем PNG иконку плагина
  if Windows.FindResource(HInstance, PChar('MYICON'), 'PNG')<>0 then
     begin
       PlugInterface.Icon := TMemoryStream.Create;
       ResourceStream     := TResourceStream.Create(HInstance, 'MYICON', 'PNG');
       PlugInterface.Icon.LoadFromStream(ResourceStream);
       ResourceStream.Free;
     end;
 
  // Инициализируем обработчики событий плагина
  PlugInterface.OnCall      := PlugInVisual.OnPluginCall;
  PlugInterface.OnGameEvent := PlugInVisual.OnGameEvent;
 
  // Сообщим оболочке клиента об изменениях
  PlugInterface.SetPlugInParams;
end;
 
// Процедура завершения плагина
procedure PluginFinalization;
begin
  // Освобождаем PNG иконку плагина
  PlugInterface.Icon.Free;
  // Освобождаем переменную класса визуальной информации плагина
  FreeAndNil(PlugInVisual);
end;
Заранее благодарен !

Решение задачи: «Из Delphi в С#. Плагин к игре»

textual
Листинг программы
[StructLayout(LayoutKind.Sequential, Pack = 4)]
public struct TPlugInfo {
    [MarshalAs(UnmanagedType.LPWStr)]
    public string PluginName;
    public ushort PluginVersion;
}
 
public TPlugInfo PluginVerifying() {
    return new TPlugInfo() {
        PluginName = "1234",
        PluginVersion = 1234
    };
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5