Я имею дело с этой проблемой: мы недавно обновились до VS2010, и я работаю над перекомпиляцией всех наших программных инструментов в '10. Один из этих инструментов в VC ++ был создан сторонним поставщиком. У нас есть исходный код для этого инструмента (довольно старый) и требуемый dll (также довольно старый), хотя у нас нет исходного кода для dll. Проблема возникает, когда я строю проект и получаю несколько неразрешенных внешних компонентов (LNK2019). Я использовал программу просмотра экспорта dll и убедился, что dll действительно экспортирует нужные функции, и я экспериментировал с несколькими другими обходными путями, но безрезультатно. Единственное объяснение, которое я могу придумать, заключается в том, что dll, вероятно, встроенный в VS2005, также должен быть перестроен в VS2010 - хотя мой опыт (который я признаю ограниченным) говорит мне, что в этом не должно быть необходимости.
Мой вопрос: действительно ли это проблема? Нужно ли перестраивать dll, встроенную в более старую версию VS, в версию, которую использует проект, который использует ее в настоящее время?
При необходимости могу предоставить более подробную информацию.
Спасибо,
Andy
Дамп файла usbcan32.dll
Тип файла: DLL
Раздел содержит следующий импорт:
SETUPAPI.dll
10012188 Import Address Table
10016E8C Import Name Table
0 time date stamp
0 Index of first forwarder reference
12D SetupDiGetClassDevsA
11F SetupDiEnumDeviceInterfaces
143 SetupDiGetDeviceInterfaceDetailA
VERSION.dll
100121D4 Import Address Table
10016ED8 Import Name Table
0 time date stamp
0 Index of first forwarder reference
0 GetFileVersionInfoA
A VerQueryValueA
1 GetFileVersionInfoSizeA
KERNEL32.dll
10012020 Import Address Table
10016D24 Import Name Table
0 time date stamp
0 Index of first forwarder reference
347 Sleep
169 GetLastError
21E InterlockedDecrement
247 LeaveCriticalSection
8F EnterCriticalSection
309 SetEvent
383 WaitForSingleObject
49 CreateEventA
1F5 GlobalFree
200 GlobalUnlock
1F9 GlobalLock
1EE GlobalAlloc
1E9 GetWindowsDirectoryA
219 InitializeCriticalSection
7A DeleteCriticalSection
2E CloseHandle
24 CancelIo
2B6 ReleaseMutex
381 WaitForMultipleObjects
271 OpenEventA
278 OpenMutexA
5A CreateMutexA
7C DeleteFileA
1DF GetVersionExA
1BE GetSystemTime
175 GetModuleFileNameA
177 GetModuleHandleA
378 VirtualLock
373 VirtualAlloc
18B GetOEMCP
376 VirtualFree
2C5 ResumeThread
222 InterlockedIncrement
25E MapViewOfFile
4E CreateFileMappingA
13B GetCurrentProcessId
363 UnmapViewOfFile
83 DeviceIoControl
252 LocalFree
EA FormatMessageA
4D CreateFileA
2A9 ReadFile
394 WriteFile
18C GetOverlappedResult
336 SetThreadPriority
69 CreateThread
F5 GetACP
32A SetStdHandle
FC GetCPInfo
16C GetLocaleInfoA
21F InterlockedExchange
2CA RtlUnwind
1B1 GetStdHandle
248 LoadLibraryA
360 UnhandledExceptionFilter
14F GetEnvironmentStringsW
EE FreeEnvironmentStringsW
14D GetEnvironmentStrings
ED FreeEnvironmentStringsA
212 HeapSize
303 SetEndOfFile
1B2 GetStringTypeA
15E GetFileType
1AF GetStartupInfoA
20A HeapDestroy
1D5 GetTickCount
1B5 GetStringTypeW
210 HeapReAlloc
AF ExitProcess
20C HeapFree
206 HeapAlloc
108 GetCommandLineA
297 QueryPerformanceCounter
13E GetCurrentThreadId
1C0 GetSystemTimeAsFileTime
379 VirtualProtect
1BB GetSystemInfo
37B VirtualQuery
23A LCMapStringA
387 WideCharToMultiByte
26B MultiByteToWideChar
23B LCMapStringW
198 GetProcAddress
34F TerminateProcess
13A GetCurrentProcess
30E SetFilePointer
E5 FlushFileBuffers
317 SetHandleCount
208 HeapCreate
USER32.dll
100121A0 Import Address Table
10016EA4 Import Name Table
0 time date stamp
0 Index of first forwarder reference
1DE MessageBoxA
216 RegisterClassA
60 CreateWindowExA
13A GetMessageA
2AA TranslateMessage
2B5 UnregisterDeviceNotification
99 DestroyWindow
203 PostQuitMessage
21C RegisterDeviceNotificationA
8E DefWindowProcA
201 PostMessageA
A1 DispatchMessageA
ADVAPI32.dll
10012000 Import Address Table
10016D04 Import Name Table
0 time date stamp
0 Index of first forwarder reference
1E2 RegOpenKeyExA
1CD RegCreateKeyExA
1F9 RegSetValueExA
1E1 RegOpenKeyA
1EC RegQueryValueExA
1C9 RegCloseKey
55 ConvertStringSecurityDescriptorToSecurityDescriptorA
SHELL32.dll
10012198 Import Address Table
10016E9C Import Name Table
0 time date stamp
0 Index of first forwarder reference
AF SHGetFolderPathA
Резюме
3000 .data
6000 .rdata
2000 .reloc
1000 .rsrc
11000 .text