Форум программистов, компьютерный форум, киберфорум
Rust
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Скрипт для управления GUI https://www.cyberforum.ru/ other-lang/ thread1476085.html
Товарищи модераторы, я не нашел куда сунуть эту темы, так что если она не там где надо, пожалуйста, переместите ее на нужное место. Благодарю. Доброго времени суток, уважаемые форумчане. Суть...
[Кумир]Создайте два литерных массива «существительное», «глагол», заполнив, используя команды присваивани Программирование
Добрый день, подскажите, пожалуйста в структуре программы: Создайте два литерных массива «существительное», «глагол», заполнив их с помощью команды присваивания (например, «кошка», «собака»,...
[КуМир] Составить программу нахождения суммы элементов массива Программирование
Здравствуйте! Мне нужно составить программу нахождения суммы элементов массива на языке КуМир. Такое же задание на других языках я смотрел, но мне не понятно. Массивы мне даются крайне сложно,...
Программирование [Rust] Непонятно поведение Пытаюсь считать строку с клавы в качестве String, парсить её и получить целочисленное значение, примерно такой вариант мне предлагали на irc канале rust'a , но то было ещё с версией Nightly, вышла... https://www.cyberforum.ru/ other-lang/ thread1474744.html
Программирование [КуМир] Определить, сколько в заданной матрице столбцов, не содержащих отрицательных чисел https://www.cyberforum.ru/ other-lang/ thread1472669.html
Добрый день, делаю программу в Кумире, условия задания: Напишите алгоритм, определяющий, сколько в заданном двумерном массиве столбцов, не содержащих отрицательных чисел. Есть программа, но не могу...
Программирование Как узнать пароль для конвертаций из .p12 в .pem?
Добрый день, во время конвертаций OpenSSL> pkcs12-in C:\Users\sanzhar\Desktop\'ecp\AUTH_RSA_c8c76480f557691ba0300f28798494479c808978.p12 -nocerts -nodes-out...
Программирование Инструментальные средства для Excel
Dобрый день. Подскажите пожалуйста каким набором инструментальных средств можно написать надстройку для Excel кроме VBA? К примеру можно ли через: C++ Builder, Delphi?
Программирование [Forth] Детская считалочка Нужно больше тем по форту! А то для него даже тега нет. :cry: По мотивам Определите функцию моделирующую "детскую считалочку". В кругу стоит n человек имеющих разные имена, в "считалочке" m слов.... https://www.cyberforum.ru/ other-lang/ thread1463088.html
Программирование APL: найти НОД двух чисел https://www.cyberforum.ru/ other-lang/ thread1462540.html
Найти наибольший общий делитель двух чисел (на APL)
Программирование Программа на APL. Написать функцию, которая оставляет в векторе только числа из одной цифры Написать функцию, которая оставляет в векторе только числа из одной цифры https://www.cyberforum.ru/ other-lang/ thread1461179.html
zzzZZZ...
524 / 355 / 94
Регистрация: 11.09.2013
Сообщений: 2,040
15.06.2015, 23:37 0

[Rust] Как привязывать WinAPI-функции к коду на Rust?

15.06.2015, 23:37. Просмотров 1689. Ответов 1
Метки (Все метки)

Ответ


вот, но по самому коду разбираться будем вместе
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
mod ffi {
    // #[allow(improper_ctypes)]
    extern "stdcall" {
        pub fn MultiByteToWideChar(
            CodePage: u32,
            dwFlags: u32,
            lpMultiByteStr: *const u8,
            cbMultiByte: i32,
            lpWideCharStr: *mut u16,
            cchWideChar: i32
        ) -> i32;
        
        pub fn MessageBoxW(
            hWnd: *const (),
            lpText: *const u16,
            lpCaption: *const u16,
            uType: u32
        ) -> i32;
    }
    
    pub const CP_UTF8: u32 = 65001;
}
 
fn message_box(text: &str, caption: &str) {
    unsafe {
        ffi::MessageBoxW(
            std::ptr::null(),
            to_utf16(text).as_ptr(),
            to_utf16(caption).as_ptr(),
            0);
    }
}
 
fn to_utf16(s: &str) -> Vec<u16> {
    unsafe {
        let req = ffi::MultiByteToWideChar(
            ffi::CP_UTF8,
            0,
            s.as_ptr(),
            s.len() as i32,
            std::ptr::null_mut(),
            0);
            
        let req = req as usize + 1; // terminating null
        let mut buf = Vec::with_capacity(req);
        buf.set_len(req);
        
        ffi::MultiByteToWideChar(
            ffi::CP_UTF8,
            0,
            s.as_ptr(),
            s.len() as i32,
            buf.as_mut_ptr(),
            req as i32);
            
        buf
    }
}
fn main() {
    message_box("Hello!", "Title");
}


Вернуться к обсуждению:
[Rust] Как привязывать WinAPI-функции к коду на Rust?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.06.2015, 23:37
Готовые ответы и решения:

[Rust] Обсуждение возможностей и предстоящей роли языка Rust
Psilon, чем он тебя так привлек? И почему именно &quot;убийца плюсов&quot;? Если напишешь развернутый ответ,...

[Rust] Расскажите о своём опыте программирования на Rust
Доброе утро! Расскажите, пожалуйста, о своём опыте программирования на Rust. Можно в сравнении с...

Как перестать бороться с компилятором Rust
уже довольно долго пытаюсь изучать язык Rust но большую часть времени я борюсь с компилятором. и...

Апгрейд ПК для таких игр как Pubg, Rust и остальные
Хочу улучшить пк что бы смог играть в такие игры Pubg,Rust и подобное вот составляющие. Системная...

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