[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
переполнение стека
timvalДата: Суббота, 07 Ноября 2009, 18:16 | Сообщение # 1
Начинающий
Группа: Участники
Сообщений: 6
Награды: 0
Замечания: 0%
Статус:
написал маленькую функцию, оформил ее ка dll-ку и вызываю ее из основной программы. Все работает правильно, но после длительной работы выскакивает ошибка Stack overflow. Через функцию передаю 2 байта при этом ошибка выскакивает после примерно 260000 вызовов функции, при 4 байтах после 130000 вызовов. Как правильно работать с внешними библиотеками?
 
timvalДата: Суббота, 07 Ноября 2009, 19:29 | Сообщение # 2
Начинающий
Группа: Участники
Сообщений: 6
Награды: 0
Замечания: 0%
Статус:
функцию написал в Borland Builder C++, может там накосячил.

file.h:
#ifndef _MYDLL_H
#define _MYDLL_H

#ifdef __DLL__
#define DLL_EI __declspec(dllexport)
#else
#define DLL_EI __declspec(dllimport)
#endif

extern "C" void DLL_EI prosto(int,int,int,int,int);

#endif

file.cpp:
#include <vcl.h>
#include <windows.h>
#pragma hdrstop
#pragma argsused
#include "file.h"

void prosto(int a1,int a2,int a3,int a4,int a5)
{
int xx=0;
xx=a1+a2+a3+a4+a5;
}

 
timvalДата: Суббота, 07 Ноября 2009, 23:57 | Сообщение # 3
Начинающий
Группа: Участники
Сообщений: 6
Награды: 0
Замечания: 0%
Статус:
Quote (Jack)
Вроде правильно.. Попробуй __stdcall добавь.

Вроде помогло спасибо :)
 
  • Страница 1 из 1
  • 1
Поиск: