Я строю приложение, состоящее из следующих действий, отдельные модули: - GAClient: С ++ исполняемый - GAOrcl: С DLL генерируется Oracle Pro * C - GAEngine: C++ DLL - MyGAUtils: библиотека функций C++таНос запуск точки останова
Вот как связаны разные модули: - GAClient вызывает несколько функций от GAOrcl и несколько из MyGAUtils; - GAOrcl называет несколько функций из GAEngine ("DoGATraining" является одним из них) - GAEngine называет несколько функций из MyGAUtils
у меня есть два похожих инструкций в GAClient.cpp:
double* vKaz=(double*)malloc(5*sizeof(double*));
и GAEngine. каст:
double* vPastTarget=(double*)malloc(5*sizeof(double*));
Моя проблема в том, таНос отлично работает при вызове из GAClient, но впоследствии падает, когда вызывается из GAEngine. Отладчик Visual Studio бросает сообщение «GAClient.exe вызвал точку останова» и указывает мне на исходный файл «lseeki64.c», о котором я не знаю, что такое ...
Я подозреваю, что это может иметь что-то с тем, что DoGATraining определяется как экстерном «C»:
#define EXPORT __declspec(dllexport)
extern "C" EXPORT int __stdcall DoGATraining(int pPastDataCount, double* pPastData)
Любая идея, где я мог бы начать поиск неисправностей?
Для справки [дон 't cast malloc] (http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc) – isedev
Спасибо @AlterMann, это было действительно интересно м, однако поведение не изменяется; отладчик по-прежнему вызывает точку останова и переходит к этому (мне) неясному «lseeki64.c» ... – gcaglion
@gcaglion, вы можете показать вызов 'DoGATraining'? –