Comment utiliser Scintilla.NET dans C# Project?

j'essaie d'utiliser Scintilla .NET dans un projet (je veux un bon éditeur + mise en évidence de syntaxe, etc.). Malheureusement, quand je fais référence aux binaires dans mon projet, Je ne semble pas pouvoir réellement utiliser les commandes Scintilla. Je reçois deux erreurs.

  1. la première se produit lors de l'ajout SciLexer.dll comme une référence à mon projet. Je reçois un message qui dit: référence à SciLexer.dll pourrait pas être ajouté. Veuillez assurez-vous que le dossier est accessible, et qu'il est un assemblage ou composant COM valide.

  2. la deuxième erreur se produit lorsque j'essaie d'utiliser les commandes de ScintillaNET.DLL. Si j'essaie de faire glisser le composant dans un formulaire, je reçois le message suivant: échec de la création du composant Scintilla. Le message d'erreur est le suivant: Système.ComponentModel.Win32Exception: %1 N'est pas une application Win32 valide à ScintillaNet.Scintilla.get_CreateParams ()

toute aide concernant l'un ou l'autre de ces problèmes serait grandement appréciée. Pour info, J'exécute Visual Studio 2008 sur une plate-forme Windows 7 64 bits.

Merci.

35
demandé sur JasCav 2010-03-06 22:53:16

5 réponses

ça fait un petit moment que J'ai utilisé Scintilla, mais je crois comprendre que SciLexer.dll est une DLL entièrement natif, ce qui est pourquoi vous ne pouvez pas ajouter une référence à elle de Visual Studio.

à la place, vous devriez "arranger" pour SciLexer.dll apparaître dans le bon répertoire à l'exécution afin qu'il puisse être chargé par ScintillaNET.DLL. La façon la plus sûre de le faire serait d'ajouter SciLexer.dll à votre projet Visual Studio comme un fichier simple (pas comme une référence), puis de changer les propriétés sur le fichier pour l'avoir copié dans le répertoire de sortie lorsque votre projet est construit.

étant donné que vous êtes sur 64-bit, je m'attends à ce que vous aurez besoin de construire votre application spécifiquement en tant que 32-bit et pas AnyCPU . Comme je l'ai dit, ça fait longtemps que je n'ai pas fait ça, mais quand je l'ai fait, Scintilla n'avait que des binaires de 32 bits.

26
répondu Tim Robinson 2017-05-23 12:34:07

j'ai contourné le problème en copiant les fichiers C:\Windows\SysWOW64

a eu l'idée du post de @weston.

3
répondu Steve 2013-09-10 07:34:10

j'utilise ScintillaNET (C# port). Il est facile à utiliser, mais c'est un dévoreur de mémoire.

https://github.com/jacobslusser/ScintillaNET

1
répondu Dan Gifford 2015-09-16 21:49:05

enter image description here

cliquez sur RUN et sélectionnez MyComputer clic droit sur MyComputer allez aux propriétés alors Cliquez sur Paramètres Système avancés .

après cela sélectionnez Avancé et cliquez sur Variables D'environnement.

ici nous pouvons ajouter la valeur et le chemin.

valeur: ce que vous aimez " Eg: Scintilla

chemin de valeur: où le la dll téléchargée est conservée ."EG: D:\prathap\DLL\

chemin de téléchargement: https://scintillanet.codeplex.com/releases

sélectionnez les téléchargements à partir du côté droit de l'écran.

ensuite, dans la demande, ajouter le DLL scintillant comme référence et les 2 autres dll comme fichiers existants.

clic droit sur project ADD -- add existing files -- puis sélectionnez les fichiers du système local et assurez-vous que vous gardez les 2 fichiers "Copier dans le répertoire de Sortie = Copy.

lancez ensuite l'application qui fonctionnera.

0
répondu Prathap Panabaka 2016-09-28 11:19:27

j'ai ajouté une référence à Scintilla.dll au lieu de SciLexer.dll - et il a fonctionné

-1
répondu user3060389 2014-01-10 15:26:00