Форум программистов, компьютерный форум CyberForum.ru

Подпрограммы на ассемблерских вставках на c++ - C++

Войти
Регистрация
Восстановить пароль
 
.::.DIMA.::.
142 / 142 / 4
Регистрация: 26.10.2008
Сообщений: 782
02.06.2009, 00:45     Подпрограммы на ассемблерских вставках на c++ #1
Я делаюна assembler подпрограмму.
Главная программа имеет такой вид:
Этот фрагмент должен складывать 2 числа
C++
1
2
3
4
5
6
7
8
#include <iostream>
using namespace std;
extern "C" int _stdcall func1 (int, int);
int main ()
{
    cout << func1 (30, 53) << endl;
    return 0;
}
Потом я создаю текстовый файл, копирую в него следующий код:
Assembler
1
2
3
4
5
6
7
8
9
10
.386
.model flat
.data
.code
func1 proc stdcall, a: dword, b: dword
mov eax, a
add, eax, b
ret 8
func1 endp
end
Добавляю его в проект через Project/Add existing item, и переименовываю его прямо в программе или до того как добавляю в проект в func1.asm. Расширение соответственно становится не txt, а asm.
Компилятор выдаёт такие ошибки:
Код
asm.obj : error LNK2001: unresolved external symbol _func1@8
C:\Temp\asm.exe : fatal error LNK1120: 1 unresolved externals
Не знаю, насколько такой способ верен, по крайней мере мне так сказали делать.
Возможно имеются ошибки в оформлении самой подпрограммы, но ошибки вызодят прямо на этапе линковки.
Скажите, в чём ошибка?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2009, 00:45     Подпрограммы на ассемблерских вставках на c++
Посмотрите здесь:

C++ Подпрограммы
C++ Подпрограммы
C++ Подпрограммы
C++ на подпрограммы
Подпрограммы C++
C++ ПОДПРОГРАММЫ
C++ Подпрограммы
Подпрограммы C++
C++ Подпрограммы-процедуры
C++ подпрограммы
C++ Подпрограммы
Подпрограммы C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
02.06.2009, 00:56     Подпрограммы на ассемблерских вставках на c++ #2
так а кто за тебя компилировать асмовский файл будет, тебе надо его скомпилировать в obj, а студийный линкер его уже подцепит, должно быть так
.::.DIMA.::.
142 / 142 / 4
Регистрация: 26.10.2008
Сообщений: 782
02.06.2009, 01:00  [ТС]     Подпрограммы на ассемблерских вставках на c++ #3
А можно подробнее, как это сделать?
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
02.06.2009, 01:20     Подпрограммы на ассемблерских вставках на c++ #4
я честно не очень уверен что это должно быть так но предполагаю:
1. берешь асмовский компилятор, компилируешь *.asm в obj, не линкуя программу, может быть компилятор и линковщик будет в одном флаконе, тогда какая-нить опция нужна, но смысл в получении объектного файла
2. кладешь его в папку из которой компилируешь сишный файл, должно быть линковщик его сам подцепит, хотя не факт, возможно надо будет в опциях прописать
наверняка не скажу ,так как такое проделывал в gcc, с заданием всего из консоли, в студии не пробовал
.::.DIMA.::.
142 / 142 / 4
Регистрация: 26.10.2008
Сообщений: 782
03.06.2009, 00:36  [ТС]     Подпрограммы на ассемблерских вставках на c++ #5
Спасибо. Разобрался сам. Я просто не так добавлял файл.
Yandex
Объявления
03.06.2009, 00:36     Подпрограммы на ассемблерских вставках на c++
Ответ Создать тему
Опции темы

Текущее время: 08:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru