| ||||
| ||||
А ест me кого-нибудь уже готовый написанный класс на C#, который служит обёрткой для вызова CryptoAPI функций? Через pinvoke или как нибудь ещё?! Буду очень благодарен ;) | ||||
Ответы: | ||||
| ||||
В своих горе-изысканиях я пользовался обертками с www.pinvoke.net. | ||||
| ||||
А у Вас не осталось мб класса, реализующего это всё? | ||||
| ||||
от туда я использовал всего пару функций. И то у меня это вызвало проблемы, о которых я написал на форум и ответа пока не получил. Так что класса как такового у меня нет. Да и там описана всего маленькая кучка ф-ий. | ||||
| ||||
Меня самого в ближайшем будущем ждет совмещение мэнэндж и анменедж кода такого же плана. Я пока что еще не решил - буду ли через DllImport работать или буду писать обертку из dll на unmanaged C++ коде, с последующим экспортированием функций. Наверное, второе проще. | ||||
| ||||
А второе это как? Несовсем понял что то.. | ||||
| ||||
Написать, например, класс наложения ЭЦП, закинуть его в unmanaged dll. Потом в в managed коде импортировать функции класса, сам класс. | ||||
| ||||
А как из unmanaged dll импортировать класс и его методы? Вот в этом загвоздка у меня что то | ||||
| ||||
[DllImport("test.dll", CharSet=CharSet.Auto)] private static extern bool Sign(...); | ||||
| ||||
1 вопрос: где при этом test.dll должно лежать? 2 вопрос: это импорт функции, а как импортировать класс например? 3 вопрос: test.dll - это же просто dll wizard например в C++ Builder? | ||||
| ||||
[DllImport("Test.dll")] public static extern int lol(int x); private void cryptoTestButton_Click(object sender, EventArgs e) { MessageBox.Show(lol(15).ToString()); } Test.dll лежит около экзешника программы. Ругаицо, говорит, что типа не может загрузить Test.dll Может с нимкак то хитро надо? | ||||
| ||||
Можно попробовать [dllimport("d:\folder1\folder2...\test.dll")] | ||||
| ||||
ТАк, с этим разобрался, косяк Билдера был. Теперь он мне говорит "Немогу найти точку входа в lol в Test.DLL" | ||||
| ||||
ТАк, с этим разобрался, косяк Билдера был. Теперь он мне говорит "Немогу найти точку входа в lol в Test.DLL" | ||||
| ||||
Необходимо точно задать имя вызываемой функции (какая в dll - такая и в .NET), ну или добавить entry point! | ||||
| ||||
Они у меня одинаково обзываются, и EntryPoint уже попробовал прописать напрямую в DllImport, ну не хочет находить и всё тут :( | ||||