Caute,
vedel by niekto poradit ako ako mozem loadnut v delphi7 dll vygenerovane v c#?
Skusam zatial jednoduchy priklad ktory by fungoval, ale nedari sa.
Dll som vytvortil v Microsoft visual studiu 2005 ako class library, samotny kod
bol jednoduchy, nemam ho uz zalohovany, ale vyzeral takto :
namespace ClassLibrary1
{
public class Class1
{
public int scitaj(int a, int b)
{
return (a + b);
}
}
}
klasickym sposobom :
/************************************/
type TInitWsdl = procedure; stdcall;
var Handle : THandle;
initWsdl : TInitWsdl;
begin
Handle:= SafeLoadLibrary('ClassLibrary1.dll');
if (Handle <> 0) then
begin
@initWsdl:= GetProcAddress(Handle, 'initWsdl');
if @initWsdl <> nil then
begin
ShowMessage('nacitane');
end;
end;
end;
FreeLibrary(Handle);
/************************************/
som nepochodil. @initWsdl sa rovnalo nil.
Po x pokusoch som sa docital, ze to treba loadnut jedine pomocou COM.
takze opat pokusy :
c#
sing System;
using System.Text;
using System.Xml;
using System.Runtime.InteropServices;
public interface IAddInterface
{
int scitaj(int a, int b);
}
namespace ClassLibrary1
{
[ClassInterface(ClassInterfaceType.None)]
public class Class1 : IAddInterface
{
/*AOS.AOS_Service AOS;
AOS.SecHeader auth;*/
public int scitaj(int a, int b)
{
return (a + b);
}
}
pomocou csc.exe, regasm.exe a nasledne v delphi pomocou import type library vygenerovat .pas interface.
Nasledne pokus loadnut metodu :
var
intfRef: IAddInterface;
vysledok: Integer;
begin
intfRef := IAddInterface(CreateComObject(CLASS_Class1));
vysledok := intfRef.scitaj(3, 5);
ShowMessage(IntToStr(vysledok));
end;
ale pri
vysledok := intfRef.scitaj(3, 5);
som dostal access violation.
Vie niekto pomoct pls?
PS : Moj povodny problem bol, rozbehat WSDL pomocou HTTPrio ale bohuzial po x pokusoch som sa rozhodol ze komunikaciu
poriesim v c# a funkcie loadnem pomocu dll. Niekde som sa ale navyse docital, ze dll generovane v c# ma odlisnu strukturu
od klasickeho dll.
Fórum › Delphi
Delphi7 a dll zo c#
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 22 hostů
Podobná vlákna
FLAC v Delphi7 — založil Romik
Hledám programátora Delphi7/Lazarus — založil Apamirn
Inicializace dvojrozměrného pole v Delphi7 — založil Gonzo
Nenašly se knihovny tbb.dll a tbb_debug.dll — založil Kevil
Import dll do me dll — založil VladislavK