Delphi7 a dll zo c# – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Delphi7 a dll zo c# – Delphi – Fórum – Programujte.comDelphi7 a dll zo c# – Delphi – Fórum – Programujte.com

 

bruenor0
Newbie
5. 9. 2007   #1
-
0
-

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.

Nahlásit jako SPAM
IP: ...–
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žit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

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

Import dll do me dll — založil VladislavK

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý