AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language C# Der Typ oder Name 'DllImport' konnte nicht gefunden werden
Thema durchsuchen
Ansicht
Themen-Optionen

Der Typ oder Name 'DllImport' konnte nicht gefunden werden

Ein Thema von Chewie · begonnen am 4. Apr 2006 · letzter Beitrag vom 4. Apr 2006
Antwort Antwort
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#1

Der Typ oder Name 'DllImport' konnte nicht gefunden werden

  Alt 4. Apr 2006, 21:12
Ich will Icons aus DLLs laden, dazu verwende ich folgende kleine Klasse:

Code:
using System;
using System.Drawing;

namespace RunAsTray.Util

   
   /// <summary>
   /// Description of IconLoader.
   /// </summary>
   public class IconLoader
   {
      [DllImport("shell32.dll")]
      private static extern IntPtr ExtractIcon(int hInst, string file, int index);
      
      
      public static Icon load(string filename, int idx) {
         return Icon.FromHandle(ExtractIcon(GetModuleHandle(String.Empty), filename, index);
      }
   }
}
Doch der Compiler bringt mir folgende Meldung:
Zitat:
Der Typ oder Name 'DllImport' konnte nicht gefunden werden. Möglicherweise fehlt eine Anweisung oder ein Assemblyverweise.
Warum um alles in der Welt versucht der Compiler, das Attribut (so heißt das doch bei .NET, oder?) als Typ aufzufassen und nicht als Attribut??

Muss ich da noch irgendwas zusätzlich einstellen?
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Der Typ oder Name 'DllImport' konnte nicht gefunden werd

  Alt 4. Apr 2006, 21:22
Verdammt, wieder das alte Spiel:

Ich hab die Lösung gefunden...
Man muss noch einen Namespace einbinden:

Code:
using System;
using System.Drawing;
using System.Runtime.InteropServices;

namespace RunAsTray.Util

   
   /// <summary>
   /// Description of IconLoader.
   /// </summary>
   public class IconLoader
   {
      [DllImport("shell32.dll")]
      private static extern IntPtr ExtractIcon(int hInst, string file, int index);
      
      
      public static Icon load(string filename, int idx) {
         return Icon.FromHandle(ExtractIcon(GetModuleHandle(String.Empty), filename, index));
      }
   }
}
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Der Typ oder Name 'DllImport' konnte nicht gefunden werd

  Alt 4. Apr 2006, 22:40
Zitat von Chewie:
Warum um alles in der Welt versucht der Compiler, das Attribut (so heißt das doch bei .NET, oder?) als Typ aufzufassen und nicht als Attribut??
Hi Chewie

DllImportAttribute IST eine Klasse. Wobei Nachfahren von Attribute ein wenig besonders behandelt werden.
Präventiv, bevor du in weitere Probleme rennst:
Was du da über die Methode gesetzt hast ist im Prinzip ein call auf den Constructor von DllImportAttribute. Das ganze muss konstant zur Compile time sein, damit sichergestellt werden kann, dass zur Laufzeit sehr schnell Instanzen davon angelegt werden können. .
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz