-
При выполнении данного кода выскакивает исключение 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);
...
-
если
uses ..., ComObj, ....
то
> CoInitialize(nil);
и
> CoUnInitialize;
не надо, если не происходит в отдельном потоке
-
> umbra © (29.05.07 14:42) [1]
> не надо, если не происходит в отдельном потоке
Для библиотеки надо.
-
если не секрет, то почему? веди при инициализации ComObj это уже делается?
-
был неправ. в библиотеке СОМ не инициализируется.
-
> try
> CoInitialize(nil);
> except
> result:=-5; exit; end;
>
исключение не произойдет никогда. АПИ не возбуждают исключений.
-
то есть вы говорите может быть косяк в инициализации com?
-
>>>если не секрет, то почему? веди при инициализации ComObj это уже делается?
Да делается но если не делать то он просит com инициализировать если подключать dll, а если не через dll делать то можно без com инициализации обойтись
-
> то есть вы говорите может быть косяк в инициализации com?
>
>
может :) Но EOleSysError обычно еще сопровождается поясняющим текстом. Неплохо бы его увидеть, чтобы говорить что-нибудь определенное.
-
dll запускается через .net и никакого дополнительного текста нет
а если запустить dll через delphi то все работает нормально
-
> никакого дополнительного текста нет
так сделайте, чтоб был :) При обработке исключений пишите их сообщения в текстовый файл. Так можно выяснить, в чем проблема.
-
> так сделайте, чтоб был :) При обработке исключений пишите
> их сообщения в текстовый файл. Так можно выяснить, в чем
> проблема.
dll не создает файл какая то ошибка
как быть не знаю
читать из файла читает но не создает
-
> two_2003 © (29.05.07 21:04) [11]
> какая то ошибка
Встроенный в Делфи отладчик тебе на что дан ?
-
Удалено модератором
-
Удалено модератором
-
Удалено модератором