Я новичок в особенностях взаимодействия с ASP.net, поэтому у меня есть несколько неуправляемых dll, которые мне нужно вызывать из моего приложения asp.net mvc.
имя dll - CTSerialNumChecksum.dll. Я могу легко вызвать DLL из ASP, используя только эти две строки ниже и из моего верного ответа. пиши все работает нормально.
set CheckSumObj = Server.CreateObject("CTSerialNumChecksum.CRC32API")
validSno = CheckSumObj.ValidateSerialNumber(no)
Я знаю, что это неуправляемо, потому что, когда я пытаюсь добавить ссылку на DLL, это не работает.
я пытаюсь следовать некоторым учебникам по взаимодействию и маршаллингу, но пока не смог заставить работать код.
Я пытаюсь обернуть объект в другой статический класс и просто позволить остальной части приложения вызывать код. так что не уверен, почему так сложно заставить его работать в asp.net или что я просто идиот arggghhh ..
using System;
using System.Runtime.InteropServices;
namespace OnlineRegisteration.Models
{
public static class SerialNumberChecksum
{
[DllImport("CTSerialNumChecksum")]
public static extern int ValidateSerialNumber(string serialNo);
}
}
Вопросы:
- Как мне написать класс? Большинство примеров, которые я нашел, не касались класса, части .CRC32API, и тех, которые действительно кажутся странными
- И какой инструмент я могу использовать для идентификации
какой тип DLL конкретного файла
то есть неуправляемый c ++ и т. д.
- Также я собираюсь использовать jquery для
сделать вызов Ajax позже, чтобы я мог использовать это
чтобы подтвердить мою форму предварительной подачи.
Есть ли лучший способ справиться
это?
Вызов Dumpbin вернул мне это, не знаю, почему я не могу видеть имя функции validate внутри:
File Type: DLL
Section contains the following exports for CTSerialNumChecksum.DLL
00000000 characteristics
3D75BB53 time date stamp Wed Sep 04 15:50:43 2002
0.00 version
1 ordinal base
4 number of functions
4 number of names
ordinal hint RVA name
1 0 000015CB DllCanUnloadNow
2 1 000015D7 DllGetClassObject
3 2 000015F1 DllRegisterServer
4 3 00001601 DllUnregisterServer
Summary
5000 .data
2000 .rdata
2000 .reloc
2000 .rsrc
8000 .text
Обновление:
Может ли это быть из-за искажения имени? поскольку это C ++ DLL, по крайней мере, я подозреваю, что это в любом случае ...