Я написал программу на C, которая использует библиотеку NX Open C. Я должен скомпилировать его в .dll, и, как 32-разрядный .dll на 32-разрядной машине, он прекрасно работает. Однако, когда я помещаю тот же код в Visual Studio на 64-разрядную машину и указываю, что он компилируется для 64-разрядной версии, и я запускаю программу, она вылетает в строке, освобождающей часть памяти. Когда я закомментирую эту строку для 64-битной версии, она работает нормально. Документация NX Open указывает, что это память, которую я должен освободить.
Мой вопрос такой: Что вызывает это? Почему программа, закодированная точно так же, вылетает на свободную память в ее 64-разрядной версии на 64-разрядной машине, а не 32-разрядную версию на 32-разрядной машине? Это то, что я должен был ожидать? Я сделал что-то не так, что я могу предотвратить? Или это симптом более серьезной проблемы?
Информация о версии: Я использую Visual Studio 2005, NX 5.0.6.3, Windows XP SP3