Я пытаюсь импортировать общую библиотеку проекта GameAnalytics.Я использую свою собственную систему сборки и, кроме некоторых предупреждений, все прошло нормально, и я получаю .dll, .lib (импорт lib) и .exp из этой сборки.
Проблема в том, что, по-видимому, ни импорт libни .dll правильно экспортировали символы.Вызов dumpbin
с /exports
Я вижу, что есть только символы для C-подобных прототипов функций, которые на самом деле являются функциями-членами.Поэтому, когда я пытаюсь использовать эту библиотеку импорта, чтобы найти функции-члены, которые я вызываю в своем коде, я получаю неразрешенные символы.
Поскольку я никогда не импортировал функции-члены C ++ из общей библиотеки, мой вопрос: я что-то упустил?в процессе импорта этой библиотеки?Единственное, что мне приходит в голову, это то, что люди, стоящие за проектом GameAnalytics, не экспортировали должным образом классы и функции-члены.Я читаю некоторые тексты, и кажется, что вам нужно напрямую _export
классы и использовать far pointers
для функций-членов.
РЕДАКТИРОВАТЬ с dumpbin /exports GameAnalytics.lib
output
ordinal hint RVA name
1 0 000C6F60 addBusinessEvent
2 1 000C7180 addBusinessEventJson
3 2 000C75F0 addDesignEvent
4 3 000C7690 addDesignEventWithValue
5 4 000C7740 addErrorEvent
6 5 000C77E0 addProgressionEvent
7 6 000C7970 addProgressionEventJson
8 7 000C7CF0 addProgressionEventWithScore
9 8 000C7E90 addProgressionEventWithScoreJson
10 9 000C8220 addResourceEvent
11 A 000C83C0 addResourceEventJson
12 B 000C8760 configureAvailableCustomDimensions01
13 C 000C8940 configureAvailableCustomDimensions02
14 D 000C8B20 configureAvailableCustomDimensions03
15 E 000C8D00 configureAvailableResourceCurrencies
16 F 000C8EE0 configureAvailableResourceItemTypes
17 10 000C90C0 configureBuild
18 11 000C9160 configureDeviceManufacturer
19 12 000C9200 configureDeviceModel
20 13 000C92A0 configureGameEngineVersion
21 14 000C9340 configureSdkGameEngineVersion
22 15 000C93E0 configureUserId
23 16 000C9480 configureWritablePath
24 17 000C9520 gameAnalyticsEndSession
25 18 000C9530 gameAnalyticsStartSession
26 19 000C9540 getCommandCenterValueAsString
27 1A 000C9630 getCommandCenterValueAsStringWithDefaultValue
28 1B 000C97A0 getConfigurationsContentAsString
29 1C 000C9810 initialize
30 1D 000C9920 isCommandCenterReady
31 1E 000C9950 onQuit
32 1F 000C9960 onResume
33 20 000C9970 onSuspend
34 21 000C9980 setBirthYear
35 22 000C99A0 setCustomDimension01
36 23 000C9A40 setCustomDimension02
37 24 000C9AE0 setCustomDimension03
38 25 000C9B80 setEnabledErrorReporting
39 26 000C9BB0 setEnabledEventSubmission
40 27 000C9BE0 setEnabledInfoLog
41 28 000C9C10 setEnabledManualSessionHandling
42 29 000C9C40 setEnabledVerboseLog
43 2A 000C9C70 setFacebookId
44 2B 000C9D10 setGender
Примерпозвоните в моем коде, который не разрешен компоновщиком:
gameanalytics::GameAnalytics::configureBuild("1.0.0");
Для этого вызова нет декорации (только для C-like configureBuild()
, насколько я понимаю.