Вызов C# DLL из Delphi XE2

bstr

  1. В C# проект DLL добавить в проект пакет NuGet под названием .NET DllExport
  2. В C# добавить экспортируемую функцию (пример с параметрами типа string)

[return: MarshalAs(UnmanagedType.BStr)]
[DllExport("Save", CallingConvention = System.Runtime.InteropServices.CallingConvention.Cdecl)]
public static string Save([MarshalAs(UnmanagedType.BStr)]string ID, [MarshalAs(UnmanagedType.BStr)] string Data)
{
............
return "OK";
}

  1. Билд DLL из C# папки x86 копируется в папку билда проекта на Delphi
  2. В Delphi добавляется описание вызова

function Save(ID: widestring; Data: widestring): pchar; cdecl; external 'sharp.dll' name 'Save';

ВНИМАНИЕ! При передаче строки из Delphi в C# использован тип widestring, а при возврате результатов из C# в Delphi — тип pchar.

WordPress + IIS: а где картинки?..

wp_iis_image

Проблема: после установки WordPress на IIS оказалось, что загружаемые в CMS изображения не появляются на страничках. Однако, файл изображения действительно загружен и лежит в назначенной папке.

Причина в том, что при загрузке файла PHP, на котором работает WordPress, размещает новый файл в системной временной папке (обычно C:\Windows\Temp), и файл наследует права от этой папки. Затем файл копируется в папку WordPress и тянет за собой недостаток прав.

Решение: изменить временную папку в настройках php.ini на папку с правильными правами или изменить права на временной папке по умолчанию.

Яндекс.Метрика