CVTRES.exe отбрасывает мои экспортированные функции DLL - PullRequest
1 голос
/ 18 марта 2011

Я работаю над проектом, который создает DLL на C для Windows CE 5.0 с использованием STANDARDSDK_500.Проект относительно прост с одним исходным C-файлом.Я заметил, что когда я очищаю и собираю проект с помощью Visual Studio 2005, он не может создать мою Импортную библиотеку.Когда я приказываю Visual Studio перестроить его, он правильно создает импорт lib.

Включая подробное связывание, я обнаруживаю, что в случае сбоя (очистка и сборка) CVTRES.exe отбрасывает мои функции, например так:

Invoking CVTRES.exe:
/machine:thumb
/verbose
/out:"C:\...\Temp\lnkC7E.tmp"
/readonly
/windowsce
".\standardsdk_500 (armv4i)\release\WLTBApi.res"
Microsoft (R) Windows Resource To Object Converter Version 8.00.50727.42
...
adding resource. type:VERSION, name:1, language:0x0409, flags:0x30, size:892
Discarded '.idata$4' from coredll.lib(COREDLL.dll)
...
Discarded WLRegisterStartupApp from WLTBApi.obj // my functions! Oh noes!
...

При этом отбрасываются все мои функции, из-за чего компоновщик не создает импортную библиотеку, поскольку нет экспортируемых функций.

Я полагал, что ввод был упомянутым файлом .resв командной строке - WLTBApi.res.Этот файл идентичен в промежуточном каталоге после попытки скомпилировать как рабочий способ (перестроить), так и нерабочий (чистый. Сборка).

Итак, мой первый вопрос: каковы другие входные данные дляпрограмма CVTRES.exe, чтобы я мог найти несоответствия между двумя сборками?

Второе: какие еще методы устранения неполадок вы бы порекомендовали?

Дополнительная информация - я подумал, что возможнофайлы .obj были дополнительными входными данными - они отличаются между сборками.Теперь я считаю, что они являются выходами CVTRES.exe.Если кто-нибудь знает, прав ли я в этом, дайте мне знать.

1 Ответ

1 голос
/ 18 марта 2011

Хорошо, так что я нашел решение, но я ужасно недоволен им.Я обнаружил, что проект, который я строил, имел зависимость, но на самом деле он не был зависимостью.Другими словами, проект WLTBApi строил DLL и имел настроенную зависимость WLTBApiLib, но на самом деле он не использовал никаких выходных данных этого проекта.Удалив зависимость, проблема исчезла.

Я бы все же хотел узнать больше о том, как найти реальный ответ на происходящее, но, возможно, этот ответ поможет кому-то еще в будущем.

...