Где ошибка в коде (С++)?

Компьютеры программирование программы С++


#include <windows.h>
#include <stdio.h>

typedef int (__cdecl *MYPROC)(LPWSTR);

int main(){
HINSTANCE hinstLib;
MYPROC ProcAdd;
BOOL fFreeResult, fRunTimeLinkSuccess = FALSE;
hinstLib = LoadLibrary(TEXT("winmm.dll"));
if (hinstLib != NULL){
ProcAdd = (MYPROC) GetProcAddress(hinstLib, "PlaySound");
// If the function address is valid, call the function.
if (NULL != ProcAdd){
fRunTimeLinkSuccess = TRUE;
printf(">qwe\n");
ProcAdd(TEXT("recycle.wav")); //тут ололо, процедура фигню какуе-то делает.
printf(">Sound\n");
}
// Free the DLL module.
fFreeResult = FreeLibrary(hinstLib);
// If unable to call the DLL function, use an alternative.
if (! fRunTimeLinkSuccess)
printf(">Message printed from executable\n");
char c;
scanf("%c",&c);
}
}

Примечание:
Программа в дллке winmm находит процедуру PlaySound и должна вопросизвести звук.
Ответы:
1. BOOL WINAPI /* stdcall */ PlaySound(LPCTSTR pszSound, HMODULE hmod, DWORD fdwSound);
а не
int (__cdecl *MYPROC)(LPWSTR);
2. pszSound всегда char*, а не tchar*. Для UNICODE есть функция PlaySoundW


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.