Помощник
Здравствуйте, гость ( Вход | Регистрация )
|
|
29:05:2007, 10:17
|
|
Новенький ![]() Группа: Программист Сообщений: 4 Регистрация: 29:05:2007 Пользователь №: 11 105 Репутация: 0
|
При выполнении данного кода выскакивает исключение EOleSysError.
Может мы подключаем dll неправильно, а может в dll что то не так(отдельно dll подключали в delphi и тестили - все работает) код в dll library ole; uses SysUtils, ComObj, OleCtrls, ActiveX; {$R *.res} function GetPoint(xy: Integer): integer; stdcall; var ... begin .... try CoInitialize(nil); except result:=-5; exit; end; try Appl:=GetActiveOleObject('AMap3.Application'); except on EOleCtrlError do begin result:=- 61; exit; end; on EOleException do begin result:=-63; exit; end; on EOleRegistrationError do begin result:=-64; exit; end; on EOleSysError do begin result:=-65; exit; end; on EOleError do begin result:=-62; exit; end; .... try CoUnInitialize; except result:=-23; exit; end; end; exports GetPoint; begin end. код в веб-сервисе ... public class MapPoint { [DllImport("C:/Inetpub/wwwroot/WebSite_L-ju/App_Data/ole.dll")] public static extern int GetPoint(int xy); } ... int x = MapPoint.GetPoint(1); ... |
|
Сообщение
#1
|
|
![]() |
|
|
29:05:2007, 10:40
|
|
============== ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 1 740 Регистрация: 11:01:2007 Пользователь №: 8 750 Специализация: specialist Репутация: 27
|
Для: two_2003
а если попробовать так (не уверен, но все-таки): [DllImport("C:/Inetpub/wwwroot/WebSite_L-ju/App_Data/ole.dll", CallingConvention = CallingConvention.StdCall)] ? а точно на той машине зарегестрирован компонент в системе? |
|
Сообщение
#2
|
|
|
|
29:05:2007, 12:15
|
|
Новенький ![]() Группа: Программист Сообщений: 4 Регистрация: 29:05:2007 Пользователь №: 11 105 Репутация: 0
|
пробовали не помогает
а на счет того что объект зарегестрирован да он зарегистрирован, сам лично в реестре копался |
|
Сообщение
#3
|
|
|
|
29:05:2007, 12:30
|
|
============== ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 1 740 Регистрация: 11:01:2007 Пользователь №: 8 750 Специализация: specialist Репутация: 27
|
Для: two_2003
хм ... ошибку полностью прочитать удалось? что это за AMap3? к тому что - может он чегото хитрого требует, еще каких длл-ек или ... а в системе их нет или как вариант не находит Сообщение отредактировал sax_ol - 29:05:2007, 12:31 |
|
Сообщение
#4
|
|
|
|
29:05:2007, 12:35
|
|
Божественный ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 2 450 Регистрация: 27:05:2004 Из: Минск Пользователь №: 561 Специализация: Delphi, RDBMS, C# Репутация: 8
|
А активный объект AMap3.Application точно есть в тот момент когда Вы к нему обращаетесь ?
|
|
Сообщение
#5
|
|
|
|
29:05:2007, 15:46
|
|
Новенький ![]() Группа: Программист Сообщений: 4 Регистрация: 29:05:2007 Пользователь №: 11 105 Репутация: 0
|
Да есть, и он даже зарегистрирован в системе,
Вот проверка on EOleRegistrationError do begin result:=-64; exit; end; Эта ошибка не выскакивает. Еще предложения.... А по поводу вопроса <<что это за AMap3? к тому что - может он чегото хитрого требует, еще каких длл-ек или ... а в системе их нет или как вариант не находит>> скажу следующее, для этого объекта все есть, при подключении dll в delphi все же работает, а в .net не хочет, вот не знаю даж что и делать. |
|
Сообщение
#6
|
|
|
|
29:05:2007, 15:48
|
|
Божественный ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 2 450 Регистрация: 27:05:2004 Из: Минск Пользователь №: 561 Специализация: Delphi, RDBMS, C# Репутация: 8
|
Вообще-то .. я не то имел ввиду ..
EOleSysError - вывалиться при вызове GetActiveOleObject если на текущий момент нет запущенного(активного) объекта AMap3.Application ... А какое дополнительное сообщение приходит в EOleSysError ? |
|
Сообщение
#7
|
|
|
|
29:05:2007, 16:25
|
|
Новенький ![]() Группа: Программист Сообщений: 4 Регистрация: 29:05:2007 Пользователь №: 11 105 Репутация: 0
|
никакого сообщения не выводит, если убрать on EOleSysError do то ничего не происходит далее код
Ошибка даже происходит если использовать Appl:=CreateOleObject('AMap3.Application'); |
|
Сообщение
#8
|
|
|
|
29:05:2007, 16:37
|
|
============== ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 1 740 Регистрация: 11:01:2007 Пользователь №: 8 750 Специализация: specialist Репутация: 27
|
пробуйте прочитать так
SysErrorMessage(GetLastError); |
|
Сообщение
#9
|
|
|
|
30:05:2007, 04:37
|
|
Божественный ![]() ![]() ![]() ![]() ![]() Группа: Модеры Сообщений: 2 450 Регистрация: 27:05:2004 Из: Минск Пользователь №: 561 Специализация: Delphi, RDBMS, C# Репутация: 8
|
Т.е. из обычного Дельфийского или СиШарпного приложения вызывается нормально .. а из веб сервиса нет?
И хотелось бы всё таки увидеть что в сообщении в ошибке.... |
|
Сообщение
#10
|
|
![]() |
|
Текстовая версия | Сейчас: 17:05:2008 - 05:23 |