powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call
6 сообщений из 6, страница 1 из 1
Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call
    #39138980
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему после завершения программы выскакивает эта ошибка?

хидер:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
#ifdef __cplusplus
extern "C" {
#endif
#include <windows.h>

#include <objbase.h>
	     BSTR  rtcStrReverse(BSTR lpText) ;
#ifdef __cplusplus
}
#endif
#endif  



исходник:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
#include "stdafx.h"
#include "windows.h"
#include "my.h"
#pragma comment(lib, "my.lib")
int _tmain(int argc, _TCHAR* argv[])
{
	   BSTR b=SysAllocString(L"HELLO");
	   BSTR ret= rtcStrReverse( b);
 	   MessageBox(NULL,ret,L"",1);
   return 0;
}
...
Рейтинг: 0 / 0
Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call
    #39138981
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltПочему после завершения программы выскакивает эта ошибка?
При объявлении импортируемой функции ты не угадал правильное соглашение вызова.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call
    #39138982
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Попробовал объявить как __stdcall

Код: plaintext
1.
  BSTR __stdcall rtcStrReverse(BSTR lpText) ;



теперь не компилируется

автор 1>my.obj : error LNK2019: unresolved external symbol _rtcStrReverse@4 referenced in function _wmain
...
Рейтинг: 0 / 0
Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call
    #39138994
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eolt
Код: plaintext
1.
rtcStrReverse


это случайно не из рантайма VB6 ?
...
Рейтинг: 0 / 0
Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call
    #39139004
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде заработал __stdcall , но выглядит как порнография. Это так и должно быть?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
#ifdef __cplusplus
extern "C" {
#endif
#include <windows.h>
#include <objbase.h>
		     BSTR rtcStrReverse (BSTR);
	             typedef BSTR (__stdcall * STRREVERSE )(BSTR); 
	  	     STRREVERSE StrReverse =(STRREVERSE )&rtcStrReverse;
#ifdef __cplusplus
}
#endif
#endif  



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
int _tmain(int argc, _TCHAR* argv[])
{
     BSTR b=SysAllocString(L"HELLO");
     BSTR nRet = (*StrReverse)(b);
     MessageBox(NULL,nRet,L"",1);
    return 0;
}




ИзопропилEolt
Код: plaintext
1.
rtcStrReverse


это случайно не из рантайма VB6 ?

да от туда
...
Рейтинг: 0 / 0
Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call
    #39139007
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltВроде заработал __stdcall , но выглядит как порнография. Это так и должно быть?

Да, примерно так и должно быть.

__stdcall - соглашение о вызовах
extern "C" - убирает C++'ное украшательство имен
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]