![]() |
[C#] .NET Assembly DLL nutzen
Ichhabe mit Hilfe von ikvm (
![]() Die DLL heißt HelloWorld.dll und die enthaltene Klasse "HelloWorld". Wen ich jetzt schreibe
Code:
Sagt mit der Compiler:
using HelloWorld;
Zitat:
|
Re: [C#] .NET Assembly DLL nutzen
Hast du dir die DLL mal im Reflector angeguckt?
Und, eigentlich muss in .NET jede Klasse in einem Namespace liegen, wenn ich mich nicht irre. Hast du den Namespace importiert? |
Re: [C#] .NET Assembly DLL nutzen
Nun ja, es war eben eine ganz einfache Java Klasse:
Code:
Wie kann ich die DLL im Reflector angucken? Wird das Programm mit dem VS mitgeliefert?
/*
* Project : PVS Soap Bridge Demo Java Programm * Copyright : © 2006 Datawerk * File Name : HelloWorld.java * Author : mp * Date : 2006-09-06 * Comment : Java Demo-Programm mit Demo-Klassen für externe JNI-Aufrufe * */ public class HelloWorld { public static void main(String[] argv) throws Exception { System.out.print("Hello, world"); } // einfache Interger Rückgabe public int intTest() { return 42; } // Integer Rückgabe mit Integer Parameterübergabe public int intTest2(int Value) { return Value * 2; } // einfache String Rückgabe public String strTest() { return "Hello, world"; } // String Rückgabe mit String Parameterübergabe public String strTest2(String s) { return s + "world"; } } |
Re: [C#] .NET Assembly DLL nutzen
Den Reflector kannst du bei
![]() |
Re: [C#] .NET Assembly DLL nutzen
[Halbwissen]
Wenn man keinen Namespace angibt is IMHO die Klasse in einem unbenannten Standard-Namespace. Versuchs also mal ohne using... [/Halbwissen] Der Reflector müsste aber auf jeden Fall Aufschluss geben... mfg Christian |
Re: [C#] .NET Assembly DLL nutzen
Liste der Anhänge anzeigen (Anzahl: 1)
So sieht das ganze im Refelctor aus (siehe Anhang).
|
Re: [C#] .NET Assembly DLL nutzen
Jo, das Teil hat keinen Namespace... Wie gesagt: Versuchs mal ohne using...
BTW: Das is nicht das Einzige, was der Reflector kann. Guck dich mal um... Du müsstest den kompletten .NET-Quelltext sehen können... mfg Christian |
Re: [C#] .NET Assembly DLL nutzen
Using wegzulassen dürfte nicht funktionieren, man wechselt damit ja nicht Namespaces, sondern importiert sie nur. Entweder hat der Namespace doch irgendeinen Namen, oder du packst die Klasse mal testweise in einen "richtigen" Namespace und importierst den. Dann weißt du zumindest, ob es am Namespace liegt oder ein anderes Problem vorliegt.
|
Re: [C#] .NET Assembly DLL nutzen
Wenn ich es ohne using mache:
Code:
private void Form1_Load(object sender, EventArgs e)
{ Int32 i = HelloWorld.intTest(); } Zitat:
Code:
Und intTest sieht so aus:
public class HelloWorld : Object
{ // Methods [MethodImpl(MethodImplOptions.NoInlining), LineNumberTable((ushort) 11)] public HelloWorld(); public virtual int intTest(); public virtual int intTest2(int Value); [MethodImpl(MethodImplOptions.NoInlining), Throws(new string[] { "java.lang.Exception" }), LineNumberTable(new byte[] { 0x9f, 0x9c, 0x6f })] public static void main(string[] argv); public virtual string strTest(); [MethodImpl(MethodImplOptions.NoInlining), LineNumberTable((ushort) 0x26)] public virtual string strTest2(string s); }
Code:
Dumme Frage: Wie geht das mit den Namespace in Java? Ich habe eben in meinem dicken Buch geguckt, da taucht im Stichwortverzeichnis der Begriff Namespace nicht auf.
public virtual int intTest()
{ return 0x2a; } |
Re: [C#] .NET Assembly DLL nutzen
Andere Möglichkeit(aber eher unwahrscheinlich):
Code:
using -;
Zitat:
Zitat:
IMHO gibts in Java keine Namespaces. Aber sowas ähnliches: Ich mein das heißt da Package... Bin mir da aber nicht sicher. Kann auch sein, dass das da das Äquivalent zu ner Assembly is... mfg Christian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz