ТК
Танюшка Козляковская

Dll asm end cpp main...Error

Что здесь не правильно, компилятор ошибок не выводит, программа не работает .

.586
.model flat
.data
Msg db 'Hello, World!',0h
.code
public power
LibMain proc hInstDLL:DWORD, reason:DWORD, unused:DWORD
mov eax, 1
ret
LibMain endp
power proc
push ebp
mov ah,9
mov edx,OFFSET Msg
int 21h
pop ebp
ret
power endp
end LibMain

#include
#include
#include
#include
using namespace std;
typedef void (WINAPI*cfunc)();
cfunc power;
void main(void){
HINSTANCE hLib=LoadLibrary(L"dlltest.DLL");
if(hLib==NULL){
cout << "Unable to load dllcpp.dll!" << endl;
getch();
return;
}
power=(cfunc)GetProcAddress(hLib, "power");
if(power==NULL){
cout << "Unable to load function(dllcpp)." << endl;
FreeLibrary((HMODULE)hLib);
getch();
return;
}
power();
FreeLibrary((HMODULE)hLib);
getch();
}

ЕР
Елизавета Рощевская

Она и не должна работать.

Неправильно то, что вы пытаетесь написать DLL-библиотеку для Windows и при этом вызываете прерывание MS DOS.
В защищенном режиме работы процессора таблица векторов прерываний совсем не совпадает с таковой в защищённом режиме.
В Windows вывод в консоль производится вызовом функций WinAPI (WriteConsole, WriteFile), а не возбуждением программных прерываний.

Кстати, я вам уже писала пример Windows-программы для tasm32, выводящей текст в консоль http://otvet.mail.ru/answer/441382888/ , но вы мой ответ проигнорировали.

Похожие вопросы
Как скомпилировать из *.cpp в *.jar?
Linux. как собрать *.cpp в *.exe???
Как скомпилировать cpp в dll?
что я делаю не так? выдает ошибку: [Error] Unit1.pas(37): ')' expected but 'END' found
у кого есть желание помочь по asm?
--- END ERROR REPORT 7142be2a ----------что ето и как испаравить
Что за ошибка?? ? asm
Front-end и Back-end?
Cpp. Как очищается память в функциях?
как передать массив в функцию? Cpp