Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 18

Не получается скомпилировать пример с libffi

01.02.2017, 11:37. Показов 1607. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь использовать libffi.lib в программе.

C
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
#include <stdio.h>
#include <ffi.h>
#include <Windows.h>
#pragma comment( lib, "libffi.lib" ) 
int main()
{
    ffi_cif cif;
    HINSTANCE dllHandle = LoadLibrary("user32.dll");
    int n = 4;
    ffi_type *ffi_argTypes[4];
    void *values[4];
    UINT64 a = 0;
    UINT32 b = 0;
    TCHAR* s1 = "hello";
    TCHAR* s2 = "hello2";
    values[0] = &a;
    values[1] = &s1;
    values[2] = &s2;
    values[3] = &b;
    ffi_argTypes[0] = &ffi_type_uint64;
    ffi_argTypes[1] = &ffi_type_pointer;
    ffi_argTypes[2] = &ffi_type_pointer;
    ffi_argTypes[3] = &ffi_type_uint;
    ffi_type *c_retType = &ffi_type_sint;
    ffi_type rc; // return value    
    if (ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 4, &ffi_type_sint, ffi_argTypes) == FFI_OK) {
        ffi_call(&cif, FFI_FN(GetProcAddress(dllHandle, "MessageBoxA")), &rc, values);
    }
    return 0;
}
При коммпиляции возникает ошибки:

2>main.obj : error LNK2001: unresolved external symbol __imp__ffi_type_uint32
2>main.obj : error LNK2001: unresolved external symbol __imp__ffi_type_sint32
2>main.obj : error LNK2001: unresolved external symbol __imp__ffi_type_uint64
2>main.obj : error LNK2001: unresolved external symbol __imp__ffi_type_pointer
2>C:\Users\Downloads\libffi-master\libffi-master\win32\vc14_x86\Debug\test.exe : fatal error LNK1120: 4 unresolved externals
Подскажите в чем проблема?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.02.2017, 11:37
Ответы с готовыми решениями:

Не получается пример из книжки!
Я только начинаю изучать Visual C++, и не могу разобраться с простым кодом. Я добавил к Edit box переменную, и записал функцию void...

Скомпилировать пример из документации CUDA cuBLAS
Привет всем, есть документация по библиотеке cublas_v2.3 http://www.naic.edu/~phil/hardware/nvidia/doc/CUBLAS_Library_2.3.pdf На...

Не получается скомпилировать
using System; using System.Windows.Forms; using System.Drawing; class kours { public class ButtonForm : Form { ...

11
Brainsbreaker
 Аватар для Digit@ll
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
01.02.2017, 14:00
Уверен, что у тебя нет ни libffi.lib, ни той же dll.
0
0 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 18
01.02.2017, 14:17  [ТС]
libffi.lib есть
0
Brainsbreaker
 Аватар для Digit@ll
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
01.02.2017, 14:36
Дай
0
0 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 18
01.02.2017, 14:51  [ТС]
На форум выложить? В ней 111 кбайт
0
Brainsbreaker
 Аватар для Digit@ll
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
01.02.2017, 15:22
Ну конечно, а куда еще? Что за капризы?
0
0 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 18
01.02.2017, 15:24  [ТС]
выложил
Вложения
Тип файла: zip libffi.zip (110.3 Кб, 6 просмотров)
0
Brainsbreaker
 Аватар для Digit@ll
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
01.02.2017, 15:41
Спс. Интересно, твоя крэшится. Где она у тебя находится? Положи ее в папку с проектом.
0
0 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 18
01.02.2017, 15:46  [ТС]
Она лежит. Вообще это не нужно. Проект libffi лежит в одном солюшене с тестовым, а в тестовом проекте создан референс на libffi. При ребилде, сначала собирается libffi, а потом уже test, и при линковке test происходит вышеописанная ошибка.
Изображения
 
0
Brainsbreaker
 Аватар для Digit@ll
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
01.02.2017, 15:59
Верней твоя "НЕ" крэшится. А к чему такие сложности, до этого работало?
0
0 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 18
01.02.2017, 16:01  [ТС]
Это моя первая попытка использования библиотеки libffi. По-идее все должно компилироваться и работать, но что-то не так сделано. Не могу понять в чем проблема. На счет сложности не понял.
0
Brainsbreaker
 Аватар для Digit@ll
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
01.02.2017, 18:03
Я про то, что у тебя несколько проектов в одном решении. Я с таким подходом сталкивался довольно редко, поэтому навряд ли помогу, но у меня все компилируется в единичном проекте.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.02.2017, 18:03
Помогаю со студенческими работами здесь

Не получается скомпилировать
Построить график функции из задания 2. График представляет собой изображение из 50 символов по горизонтали и 50 символов по вертикали. Для...

Не получается скомпилировать
Добрый вечер форумчане. Дело состоит в следующем: не могу скомпилировать прогу, выдает какие то мутные ошибка код и скриншот прилагаются. ...

Не получается скомпилировать код
Добрый день, Достаточно не давно, я решил заняться изучением ассемблера, после всяких его изучения в интернете. Решил попробовать,...

Не получается скомпилировать файл
Здравствуйте, я только начинаю разбираться с С++ и написав пару &quot;приветмиров&quot; и решил попробовать выводить инфу не через cout, а через...

Не получается скомпилировать приложение
Дорогие форумчане, кто разбирается в Visual Studio Express (Visual C++ 2005 Express7). Мне необходимо разобраться с программой, проблема...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru