Я был настолько глуп, чтобы получить игру GFWL -encumbered (и GFWL не работает). Я нашел какой-то проект под названием XLiveLess, целью которого является повторное внедрение XLive.dll в качестве заглушки, которая выполняет только минимальную работу, необходимую для запуска игры.
Когда я разместил предварительно встроенную DLL, у меня есть "Ошибка ординала 29 в динамической библиотеке ссылок". Поэтому я запустил отладчик, чтобы найти вызов этого экспорта, вывел подпись, добавил соответствующий код в файлы.cpp и.def и построил библиотеку. Теперь, после обновления DLL, я все равно получаю ту же ошибку, но dumpbin/exports xlive.dll
ясно показывает мне, что # 29 экспортируется - там строка 29 000024A0 [NONAME]
на выходе.
Я также уверен, что моя собственная библиотека - это точная игра xlive.dll, доступная - если я удалю двоичный код, он начинает жаловаться на отсутствие DLL. Если это имеет значение, в настоящее время я запускаю это под Windows 8.0 x86_64.
Теперь я потерян и смущен, и я не имею опыта программирования Windows (делал около 15 лет назад, но забыл почти все с тех пор). Что может быть возможно, вызывает загрузчик, который все еще не находит экспортированную функцию, даже если это прямо там? Я что-то упускаю?
(Что касается законности моих действий, если это имеет значение, под юрисдикцией, в которой я живу, я вправе разрешить перепроектировать программное обеспечение для обеспечения совместимости и совместимости).
Решил.
По какой-то причине, полностью неизвестной мне, порядковый номер в окне сообщений об ошибках отключен одним для меня. Поэтому, когда сообщение об ошибке говорит "порядковый номер 29", это означает @30. Который, действительно, отсутствовал, поскольку я намеревался добавить экспорт один за другим и только добавил @29 (и этого тоже не хватало, но перед ним было проверено @30) и задалось вопросом, почему сообщение об ошибке не изменилось.