Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
1 / 1 / 1
Регистрация: 11.12.2012
Сообщений: 14
1

Библиотека классов и WINAPI

29.07.2013, 17:06. Показов 1395. Ответов 3
Метки нет (Все метки)

Доброго времени суток!
Хочу создать библиотеку с классом, который “умеет” функции Windows API, чтобы потом можно было таскать её с собой и использовать в других проектах.
Сразу скажу, в шарпе я не силён.
Делаю так: создаю библиотеку классов, называю APILib, удаляю в ней стандартный класс, создаю свой, называю Lib.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
 
namespace APILib
{
    class Lib
    {
        [DllImport("user32.dll")]
        public static extern IntPtr GetForegroundWindow();
    }
}
Но эту функцию (GetForegroundWindow()) так просто импортировать и использовать в другом проекте не получается.
Получается, если есть враппер, подобный этому:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
 
namespace APILib
{
    class Lib
    {
        [DllImport("user32.dll")]
        public static extern IntPtr GetForegroundWindow();
        public IntPtr _GetForegroundWindow() { return GetForegroundWindow(); }
    }
}
Но это костыль, т.к., во-первых, помимо импортов, нужно ещё и врапперы для них писать, а во-вторых, функцию с другим названием использовать (иначе будет неоднозначный вызов).
Буду благодарен за любую подсказку по теме (не нужно мне предлагать таскать с собой класс в текстовом виде вместо библиотеки, этот вариант однозначно не устраивает).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.07.2013, 17:06
Ответы с готовыми решениями:

библиотека классов
Скажите, пожалуйста, могу ли я подключать библиотеку, созданную на C#, в других средах...

Библиотека для конвертирования классов
Всем привет. Помню была библиотека, используя которую можно было 1 раз в одном месте удобно...

Библиотека классов
Подключить к консольному приложению созданную библиотеку классов. Разместить в консольном...

Библиотека классов. Наследование обобщенного класса
Здравствуйте. Вопрос может глупый, но кроме как сюда задавать его некуда. Создать нужно библиотеку...

3
Эксперт .NET
14879 / 11265 / 2951
Регистрация: 17.09.2011
Сообщений: 18,866
29.07.2013, 17:25 2
Доброго времени года!

Цитата Сообщение от vo1ty Посмотреть сообщение
помимо импортов, нужно ещё и врапперы для них писать
А что не так с врапперами? Обертки — очень даже полезная штука, особенно когда надо использовать какой-нибудь нативный или кривой API.

Импорты можно вынести в отдельный internal-класс, а в открытом классе Lib уже делать публичные методы-обертки.
Тогда и переименовывать не придется.
1
1 / 1 / 1
Регистрация: 11.12.2012
Сообщений: 14
29.07.2013, 17:58  [ТС] 3
Без обёрток было бы удобнее, а за идею с internal-классом спасибо.
0
Эксперт .NET
14879 / 11265 / 2951
Регистрация: 17.09.2011
Сообщений: 18,866
29.07.2013, 19:01 4
Цитата Сообщение от vo1ty Посмотреть сообщение
Без обёрток было бы удобнее
Так ведь можно использовать импортированные функции и без оберток.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.07.2013, 19:01

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Библиотека классов, реализующих комплексную арифметику
Доброго времени суток!!! Помогите, пожалуйста, написать программу(Библиотека классов, реализующих...

Библиотека классов для решения квадратного уравнения
Нужно в одном решении создать три проекта : 1) Библиотека классов, где будут вестить все...

Чтение/сохранение настроек для библиотека классов
есть необходимость хранить настройки для библиотеке классов, но не могу придумать как это...

Совместное использование класса в нескольких проектах (библиотека классов)
Всем доброго времени суток. Что-то никак не могу найти ответ на мой вопрос. Может кто здесь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.