Skocz do zawartości


Zdjęcie

Pliki nagłówkowe dla C#


  • Zaloguj się, aby dodać odpowiedź
6 odpowiedzi w tym temacie

#1 marcin_gc

marcin_gc

    Początkujący

  • Użytkownik
  • 30 postów

Napisano 2011.06.12, 18:30

Witam czy posiada może ktoś pliki nagłówkowe dla C#. Najlepiej przykład jak uruchomić pustą formę i nic więcej. Myślę o zrealizowaniu tej propozycji http://forum.aqq.eu/...onwerter-walut/ z ciekawości chce spróbować. Wiem jak bez problemu pobrać dane z NBP, więc reszta nie powinna być problem.

#2 WiTuŚ

WiTuŚ

    AQQ Maniak

  • Przyjaciel
  • 2028 postów

Napisano 2011.06.12, 19:29

Na stronie użytkownika Beherit są dostępne pliki nagłówkowe w CPP. KLIK.

#3 Inferno

Inferno

    Bywalec

  • Użytkownik
  • 213 postów

Napisano 2011.06.12, 19:35

Hehe, też nad tym myślałem i coś tam robiłem przez semestr, ale problemem był brak czasu, bo dużo nauki i musiałem poznać QT bo w nim chciałem się uczyć. Teraz został mi jeszcze jeden egzamin, także w tym tygodniu zasiądę i zacznę się uczyć jak w tym środowisku tworzyć biblioteki, a potem sprawdzę, czy da się to jakoś połączyć z bibliotekami AQQ. Jeśli się wszystko uda, to mam nadzieję, że nie stoi nic na przeszkodzie, abyśmy obydwoje tworzyli własną wizję tej wtyczki, a potem jak się nauczę trochę więcej, to projekt w całości Tobie zostawię, a sam pomyślę nad czymś bardziej zaawansowanym. Dlatego mam nadzieję, że Ci się uda znaleźć te biblioteki (kiedyś jeszcze na starym forum były), a potem się zobaczy co dalej :)

#4 marcin_gc

marcin_gc

    Początkujący

  • Użytkownik
  • 30 postów

Napisano 2011.06.12, 21:04

Na razie tylko przelicza z obcych walut na polskie złotówki, ale dodanie na inne nie powinno stanowić problemu. Tutaj screen:
http://imageshack.us...1/16477097.jpg/
Tylko jeszcze, żeby udało się z tego wtyczkę zrobić.
Screen

Użytkownik marcin_gc edytował ten post 2011.06.12, 21:06


#5 Beherit

Beherit

    In Sorte Diaboli

  • Wtyczkopisarz
  • 5031 postów

Napisano 2011.06.13, 07:06

Z tego co pamiętam w C# można tworzyć wtyczki jednak jest to dość kłopotliwe. W każdym bądź razie udostępniłem nagłówki dla C++ więc pozostaje tylko kwestia ich przetłumaczenia na C#. Pokombinuj.

#6 marcin_gc

marcin_gc

    Początkujący

  • Użytkownik
  • 30 postów

Napisano 2011.06.13, 17:03

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using HelloWorld.API;
using System.Windows.Forms;
using DllExporter;

namespace HelloWorld
{
    public static class AqqCs
    {
        // Fields
        private static List<IntPtr> _listHooks;
        private static AqqStructs.TPluginInfo _pluginInfo;
        private static IntPtr _pluginInfoPtr;
        private static AqqStructs.TPluginLink _pluginLink;


        // Methods
        private static int AQQ_SYSTEM_MODULESLOADED(int wParam, int lParam)
        {
            return 0;
        }
        [DllExport]
        public static IntPtr AQQPluginInfo(int AQQVersion)
        {
            _pluginInfo = new AqqStructs.TPluginInfo();
            _pluginInfo.ShortName = "PrzelicznikWalut";
            _pluginInfo.Version = AqqFunctions.PLUGIN_MAKE_VERSION(1, 0, 0, 5);
            _pluginInfo.Description = "Aktualne kursy walut";
            _pluginInfo.Author = "marcin_gc";
            _pluginInfo.AuthorMail = "giecmarcin@gmail.com";
            _pluginInfo.Copyright = "Marcin Giec";
            _pluginInfo.Homepage = "http://blog.mikojsoft.pl";
            _pluginInfo.Flag = 0;
            _pluginInfo.ReplaceDefaultModule = 0;
            _pluginInfo.cbSize = (uint)Marshal.SizeOf(_pluginInfo);
            IntPtr ptr = Marshal.AllocHGlobal((int)_pluginInfo.cbSize);
            Application.DoEvents();
            Application.DoEvents();
            Application.DoEvents();
            Marshal.StructureToPtr(_pluginInfo, ptr, false);
            _pluginInfoPtr = ptr;
            return ptr;
        }
        [DllExport]
        public static int Load(IntPtr Link)
        {
            try
            {
                _pluginLink = (AqqStructs.TPluginLink)Marshal.PtrToStructure(Link, typeof(AqqStructs.TPluginLink));
                _listHooks = new List<IntPtr>();
                _listHooks.Add(_pluginLink.HookEvent(AqqConstants.AQQ_SYSTEM_MODULESLOADED, new AqqDelegates.TAQQHook(AqqCs.AQQ_SYSTEM_MODULESLOADED)));
            }
            catch
            {
            }
            return 0;
        }
        [DllExport]
        public static int Settings()
        {
            FormWaluta fWaluta = new FormWaluta();
            fWaluta.Show();
            return 0;
        }
        [DllExport]
        public static int Unload()
        {
            if (_listHooks.Count > 0)
            {
                _listHooks.ForEach(delegate(IntPtr x)
                {
                    _pluginLink.UnhookEvent(x);
                });
            }

            Marshal.FreeHGlobal(_pluginInfoPtr);
            return 0;
        }
    }
}

Czy tutaj czegoś brakuje? Plik dll powstaje, ale gdy wkleję go odpowiedniego folderu, tam gdzie mają być wtyczki dla AQQ pojawia się problem. Włączam komunikator, próbuje wejść w ustawienia klikam ustawienia wtyczek i i wyskakuje błąd. Potem już nie widzi żadnych wtyczek.

#7 stivo

stivo

    mgr inż.

  • Moderator
  • 2185 postów

Napisano 2011.06.14, 19:50

Byłbym wdzięczny gdybyś zrobił jakąś instrukcję, co i jak dla C#.
  • konta lubi to




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych