Немного поздно к игре, но ваша проблема может быть, что C++ Builder украшает экспортируемую функцию с ведущей подчеркиванием. утилита командной строки TLIB
должна помочь доказать это (предполагая, что TLIB еще корабли с C++ Builder)
TLIB mydll.lib, mydll.lst
Посмотрите на полученный LST файл и посмотреть, если он содержит или _StartTest
. LabView, вероятно, ожидая найти функцию без подчеркивания.
Вы можете добавить файл DEF в проект C++ Builder, который будет подавлять главный подчеркивание. Попробуйте следующее:
Используйте __cdecl соглашение о вызове вместо __stdcall.
Экспонаты равнины "C". Нет классов C++ или функций-членов.
- Убедитесь, что у вас есть внешний экземпляр «C» {} вокруг ваших прототипов функций.
Создайте файл DEF, который сглаживает экспортируемые функции до совместимого с Microsoft имени. Псевдоним имен, поэтому они не содержат подчеркивания . Файл DEF будет выглядеть так:
ЭКСПОРТ ; Имя MSVC = C++ Builder имя StartTest = _StartTest Foo = _foo Bar = _Bar
5- Добавить файл DEF в вашей DLL проекта BCB и восстановить его.
проверить эти древние изделия для получения более подробной информации: http://bcbjournal.org/articles/vol4/0012/Using_Visual_C_DLLs_with_CBuilder.htm
Реверс статье (создание C++ Builder библиотеки DLL, которые вызываются из VC++ созданных приложений) утопает в этом архиве:
http://www.frasersoft.net/program/bcbdev.zip:/статьи/bcbdll.htm. Он более подробно описывает трюк DEF-файла, а также некоторые другие варианты.
Обратите внимание, что мой ответ основан на том, как это было в 1998 году или около того. С тех пор они, возможно, изменились. Если они есть, то инструменты командной строки C++ Builder impdef, tlib, tdump и эквиваленты Microsoft этих инструментов должны быть в состоянии показать вам, что именно находится в вашей DLL и MSVC.
H^2
Вам действительно нужен TestStand, чтобы узнать, какие параметры вызова? Если вы можете увидеть имена функций, и у вас есть исходный код для DLL ... можете ли вы не просто определить, какие параметры должны быть переданы? Я не использовал TestStand навсегда, но вы можете сделать это в LabVIEW. – flndr
Я передаю DLL тестировщикам, которые могут не знать, как это сделать должным образом. Оказывается, тестовый стенд будет читать файл .c/.cpp и определять параметры таким образом. Задача решена. –
Как насчет только заголовочного файла? На всякий случай, если вы не хотите, чтобы весь ваш код был распространен? – flndr