Поиск:

Ответ в темуСоздание новой темы Создание опроса
> внешняя функция asm to C++ (ошибка LNK2001), внешняя функция asm to C++ 
V
    Опции темы
sa1o
Дата 6.6.2010, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



Помогите плз с проблемкой, хочу импортировать готовую функцию из masm (6.15) в vc++ (express 2010)

код в masm:
Код


.686
.model flat
public _funcz

.code
_funcz proc
        push ebp
        mov ebp,esp
    
        ;код функции

        pop ebp
        ret
_funcz endp
end


код в с++: 
Код

extern "C" int _funcz(int n);
int _tmain(int argc, _TCHAR* argv[])
{
    n=_funcz(n);
}


компилирую\линкую с такими ключами

Код

ML -Zi -c -Fl -coff %1.asm

LINK32 %1.obj  /SUBSYSTEM:CONSOLE /entry:mainCRTStartup /DEBUG


ошибка в масм:
Код

LINK32 : error LNK2001: unresolved external symbol _wWinMain
func.exe : fatal error LNK1120: 1 unresolved externals


/entry:mainCRTStartup пробовал менять на WinMainCRTStartup и на wWinMainCRTStartup все та же ошибка, но .obj файл создается поэтому пробую подключить его в с++ и там вызвать функцию, мне возврат опять же ошибка:

Код

f.obj : error LNK2019: ссылка на неразрешенный внешний символ __funcz в функции _wmain
C:\***\f.exe : fatal error LNK1120: 1 неразрешенных внешних элементов


в общем помогите плз разобраться

PM MAIL   Вверх
586
Дата 6.6.2010, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: нет
Всего: 146



убери лишний слэш в названии функции:
Код
extern "C" int funcz(int n);
int _tmain(int argc, _TCHAR* argv[])
{
    n=funcz(n);
}

собирал так:
Код
ml /c /coff 1.asm
cl /c 2.cpp
link /subsystem:console 1.obj 2.obj

PM   Вверх
sa1o
Дата 6.6.2010, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



спасибо, дело действительно только в слэше, просто убрал его и все заработало
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для Windows/DOS"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для Windows/Dos | Следующая тема »


 




[ Время генерации скрипта: 0.0438 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.