Из 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
};
}