Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 16:38

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



C# DLL erstellen und mit C# über DLLImport aufrufen

Discussion on C# DLL erstellen und mit C# über DLLImport aufrufen within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
TheAldi's Avatar
 
elite*gold: 21
Join Date: Jan 2010
Posts: 1,904
Received Thanks: 462
C# DLL erstellen und mit C# über DLLImport aufrufen

Habe folgendes :

DLL:
Code:
namespace Testdll
{
    public class Class1
    {
        public byte Test()
        {
          return 1;
        }
    }
}
Und dieses Programm:
Code:
using System;
using System.Runtime.InteropServices;

namespace ConsoleApplication1
{
    class Program
    {
        [DllImport("Test.dll")]
        public static extern byte Test();
        
        static void Main(string[] args)
        {
            Console.Write(Test());
            Console.ReadKey(true);
        }
    }
}
Als Fehlermeldung bekomm ich :
Code:
Der Einstiegspunkt "Test" wurde nicht in der DLL "Test.dll" gefunden.
Wie muss ich also Funktionen in der DLL deklarieren um sie Aufrufen zu können?
TheAldi is offline  
Old 10/10/2012, 19:13   #2
 
elite*gold: 0
Join Date: May 2010
Posts: 793
Received Thanks: 268
warum willst du das machen ? C# dlls ruft man von c# aus nomalerweise auf indem man einfach einen verweis hinzufügt.
nkkk is offline  
Old 10/10/2012, 19:54   #3
 
TheAldi's Avatar
 
elite*gold: 21
Join Date: Jan 2010
Posts: 1,904
Received Thanks: 462
Wenn ich deine dll programmiere , welche FUnktionen besitzt die von mehreren Programm genutzt werden , denn ich möchte diese DLL ja nicht bei jedem Projekt einbinden.

Das Warum ist nebensächlich meine Frage ist warum das nicht klappt
TheAldi is offline  
Old 10/10/2012, 20:14   #4


 
Jeoni's Avatar
 
elite*gold: 966
Join Date: Apr 2010
Posts: 1,104
Received Thanks: 681
Warum das nicht klapp?
Ganz einfach:
C# ist eine reine .net Sprache. Und damit kannst du keine nativen Funktionsexporte machen (kannst eben nur Klassen und daraus Funktionen exportieren (mit dem Public-Keyword, soviel ich weiß)). Und mit dem DllImport aus .net kannste nur exportierte Funktionen aus nativen DLLs einbinden. Warum willste's nicht über'n Verweis machen? Das verstehe ich nicht.
Hoffe, ich konnte helfen
Jeoni
Jeoni is offline  
Old 10/10/2012, 20:21   #5
 
TheAldi's Avatar
 
elite*gold: 21
Join Date: Jan 2010
Posts: 1,904
Received Thanks: 462
Warum ist doch irrelevant
Kurz :
Geht also nicht so einfach wie ichs dachte bzw garnich ? ^^
TheAldi is offline  
Old 10/10/2012, 21:05   #6
 
elite*gold: 0
Join Date: Nov 2005
Posts: 40
Received Thanks: 8
Wenn du eine dll in mehreren Projekten verwenden willst, warum willst du sie dann nicht überall einbinden?

Entweder du schreibst ne c# dll und bindest sie per verweis überall ein wo du sie verwenden willst, oder du schreibst ne c++ dll mit export methoden, liest mittels dumpbin die EntryPoints aus und verwendest die Funktionen über DLLImport. Dann solltest du dir aber im klaren sein, dass sich die primitiven datentypen deutlich unterscheiden und du unter umständen wrappen musst.

da würde ich die erste variante bevorzugen.

mfg
fatalaty is offline  
Thanks
1 User
Old 10/10/2012, 21:18   #7
 
TheAldi's Avatar
 
elite*gold: 21
Join Date: Jan 2010
Posts: 1,904
Received Thanks: 462
Gut akzepteriert
Variante 1
TheAldi is offline  
Old 10/10/2012, 21:23   #8
 
kissein's Avatar
 
elite*gold: 0
Join Date: Sep 2005
Posts: 426
Received Thanks: 87
Quote:


The DllImport attribute is very useful when reusing existing unmanaged code in a managed application. For instance, your managed application might need to make calls to the unmanaged WIN32 API.
Um die OP Frage zu beantworten, nein es ist nicht sinnvoll, dafür gibt es in C# die using Deklaration. Ansonsten siehe Post von fatalaty
kissein is offline  
Reply


Similar Threads Similar Threads
Rates über die DB erstellen ?!
04/21/2011 - Metin2 Private Server - 0 Replies
Hey Wenn ich die Rates über die DB anpassen will , also auf 1000 welche Zahl muss ich dann bei Gold min. und bei Gold max. eingeben ?
Ps Erstellen Über TV
07/17/2010 - WoW Private Server - 7 Replies
Hey Liebe WoW User Ich habe ein Probelm ich möchte ein WoW Server erstellen aber ich habe 0 ahnung wie wo und was ich alles machen muss kann mir einer vll helfen über Tv ein PS zu erstellen er wird auch belohnt das er GM auf mein Server wird Tv Daten kriegt ihr endweder über PN Oder addet mich mal ICQ 581129941 Ich bin ON
P-Server erstellen über TV
01/09/2010 - Metin2 Private Server - 9 Replies
Kann mir einer ein P-Server erstellen über TV? :) Hab alles was man brauch für P-Server. Pls pm me wer sich dafür bereit stellt. danke :) mfg Armanii_38
Pserver über TV erstellen.
11/21/2009 - Metin2 Private Server - 3 Replies
Hey ich wollte fragen ob mir jemand einen Metin2 Pserver über Team Viewer erstellen könnte. Habe 2GB Ram Instant Files Port Maps Navicat glaub das war ja alles was man so braucht.
P server erstellen über TV
10/02/2009 - Flyff Private Server - 3 Replies
könnte mire jemand ein p server über tv erstellen wäre nedd :o schickt mir einfach eine pn



All times are GMT +2. The time now is 16:38.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.