__declspec(dllexport) void __cdecl memcopy(void *pDst, const void *pSrc, unsigned int nSize) { __asm {
mov esi, pSrc
mov edi, pDst
mov ecx, nSize $L1:
movq mm7, [esi]
add esi, 8
movq [edi], mm7
add edi, 8
dec ecx
jne $L1 }; }
Это код из CopyBlit8x8.dllVB.NET ERR: 0x8007000B (Bad Image Format Exception)
Я успешно импортирован этот .dll в консольное приложение C++ и скопировать строку 'Hello World' из char * a, char * b. Затем повторил b, успешно показав «Hello World».
Тогда, поскольку это обычная программа копирования памяти, которая принимает два указателя для выполнения копии, я сделал это ниже;
Картина в основном говорит о ДОЛЖНОСТЬ ~ Bad Image Format Exception. Код Err: 0x8007000B.
Это общая ошибка с небольшой информацией, поскольку она применима к различным сценариям. Но, я могу смело предположить, что-то связано с указателями.
Что я хочу - это быстрый модуль ASM для выполнения копий общей памяти, но для изображений vb.NET.
Любые советы, переполнение стека!
http://shotting.cc/soapbox/viewtopic.php?f=20&t=10&p=11#p11 Это ссылка на исходное сообщение авторов. –
Не знаю, связано ли это с проблемой, но первым параметром является битмап _destination_, где будут помещаться данные, а вторым параметром является битмап _source_, из которого будут скопированы данные. И в настоящее время вы пытаетесь скопировать пустую растровую карту на непустую. –
Извинения, VVincent, за ошибку в коде изображения. Результат тот же для bm2