Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Долбаный Visual Studio

67K
30 октября 2011 года
Виктор_Сен
22 / / 21.10.2011
У меня есть dll с одной функцией: memCpy32(). Проверял dll с помощью bumpbin, там эта функция действительно есть. Но почему когда я добавляю lib и h файл этой библиотеки линкер не создаёт exe с моей библиотекой, а выдаёт вот это: Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ _memCpy32@0 в функции _wmain D:\doc\dev\Visual Studio 2010\VectorTest\VectorTest\VectorTest.obj VectorTest. Почему он ищет функцию в виде _memCpy32@0, и как сделать, чтобы он искал memCpy32? Но это так, если функция extern "C" __stdcall, а если просто extern "C", то линкер ищет _memCpy32. Вот код:
Код:
option casemap:none
 
.686
 
.model flat
 
.code
 
dllMain proc stdcall
        mov eax,1
        ret
dllMain endp
 
memCpy32 proc
        mov eax,5
        ret
memCpy32 endp
 
end
Да я вроде разобрался, добавил к memCpy32 чёрточку, чтоб получилось _memCpy32, но конечно хотелось бы обойтись без этого.
260
30 октября 2011 года
Ramon
1.1K / / 16.08.2003
VS здесь совершенно не причем, определитесь сначала с используемыми соглашениями о вызовах и соответственно правилами декорации имен(манглинга), и следуйте им, а VS последует за вами.

PS: Еще один "оптимизированный" вариант memcpy? Сочувствую.
67K
30 октября 2011 года
Виктор_Сен
22 / / 21.10.2011
Цитата: Ramon
определитесь сначала с используемыми соглашениями о вызовах и соответственно правилами декорации имен(манглинга), и следуйте им, а VS последует за вами.

А в 64 разрядном режиме декорации имён нет, зачем она вообще нужна?

260
30 октября 2011 года
Ramon
1.1K / / 16.08.2003
Цитата: Виктор_Сен
А в 64 разрядном режиме декорации имён нет, зачем она вообще нужна?



В C++ манглинг есть всегда. В простейшем случае для контроля количества и типов передаваемых аргументов, а зачем оно нужно вы и сами догадаетесь.

67K
03 ноября 2011 года
Виктор_Сен
22 / / 21.10.2011
Ну теперь вроде разобрался. Спасибо.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог