помогите перевести сигнатуру из dll на C#
От: kozzzak  
Дата: 22.05.10 20:50
Оценка:
Вот столкнулся с той же проблемой.
function _SignString(hProv: HCRYPTPROV; InputStr: PByte;
InputStrLen: DWORD; var ResultStr: PByte;
var ResultStrLen: DWORD): Boolean; stdcall;
[DllImport("sspCrypto.dll", EntryPoint = "_SignString")]
public static extern bool SignString(
IntPtr hProv,
IntPtr InputStr,
uint InputStrLen,
[Out]out IntPtr ResultStr,
[Out]out uint ResultStrLen);
Не могли б Вы помочь мне?
Что б я не делал, получаю в ответ "Подпись пакета не верна!"
Re: помогите перевести сигнатуру из dll на C#
От: MozgC США http://nightcoder.livejournal.com
Дата: 23.05.10 10:23
Оценка:
Чтобы не гадать, я бы на вашем месте взял и основательно разобрался в этой теме, т.е. почитал бы разные статьи и MSDN. Ключевые слова: DllImport, Interop.
Re: помогите перевести сигнатуру из dll на C#
От: _FRED_ Черногория
Дата: 24.05.10 07:18
Оценка: 1 (1)
Здравствуйте, kozzzak, Вы писали:

K>Вот столкнулся с той же проблемой.


Код принято оформлять тегами. См. Оформляем сообщения красиво
Автор: anvaka
Дата: 15.05.06
.
K>    function _SignString(hProv: HCRYPTPROV; InputStr: PByte; 
K>                         InputStrLen: DWORD; var ResultStr: PByte; 
K>                         var ResultStrLen: DWORD): Boolean; stdcall;

K>    [DllImport("sspCrypto.dll", EntryPoint = "_SignString")] 
K>    public static extern bool SignString( 
K>      IntPtr hProv, 
K>      IntPtr InputStr, 
K>      uint InputStrLen, 
K>      [Out]out IntPtr ResultStr, 
K>      [Out]out uint ResultStrLen);

K>Не могли б Вы помочь мне?
K>Что б я не делал, получаю в ответ "Подпись пакета не верна!"

В подобных вопросах надо так же показать код, который вызывает метод.

Попробовать можно такой прототип:
  [DllImport("sspCrypto.dll", EntryPoint = "_SignString", ExactSpelling = true, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
  public static extern bool SignString(
    IntPtr hProv,
    [MarshalAs(UnmanagedType.LPStr)] string InputStr,
    int InputStrLen,
    [Out, MarshalAs(UnmanagedType.LPStr)] out string ResultStr,
    [Out] out int ResultStrLen
  );
Help will always be given at Hogwarts to those who ask for it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.