Adobe Animate позволяет пользователям расширять его функциональность с помощью C или C++. Вы создаете свою .dll и вызываете ее из приложения.
Официальная инструкция находится здесь, текст
Я ожидал, что смогу скопировать и вставить исходный код, скомпилировать его. затем проверьте dll. Пока всё идёт не очень хорошо.
В исходном коде есть ошибки, некоторые я исправил. Их могло бы быть больше, но пока IDE не выдает никаких предупреждений.
При компиляции выдает 2 ошибки, LNK2001 и LNK1120
Консоль вывода такая
Сообщение об ошибке на вкладке «Вывод»
Согласно выводам, проблема в «struct MM_Environment mmEnv».
Я использую VS 2022, ниже приведен код Я работаю.
Вы можете выполнить поиск в разделе «Частные типы данных, макросы и глобальные переменные», он должен привести вас прямо к соответствующей части.
Другая возможность заключается в том, что у меня неправильные настройки в конфигурации, однако это всего лишь предположение, никаких подсказок нет, поэтому я не знаю, что с этим делать.
Если у вас есть идеи или вам нужна дополнительная информация, дайте мне знать. Мои познания в программировании очень ограничены, но я попробую.
Заранее спасибо.
Код: Выделить всё
#ifndef _MM_JSAPI_H_
#define _MM_JSAPI_H_
/*****************************************************************************
* Public data types
****************************************************************************/
typedef struct JSContext JSContext;
typedef struct JSObject JSObject;
#if _WIN64 || __x86_64__
typedef long long jsval;
#else
typedef long jsval;
#endif
#ifndef JSBool
# if _WIN64 || __x86_64__
typedef long long JSBool;
# else
typedef long JSBool;
# endif
#endif
typedef JSBool(*JSNative)(JSContext* cx, JSObject* obj, unsigned int argc,
jsval* argv, jsval* rval);
/* Possible values for JSBool */
#define JS_TRUE 1
#define JS_FALSE 0
/*****************************************************************************
* Public functions
****************************************************************************/
/* JSBool JS_DefineFunction(unsigned short *name, JSNative call, unsigned int nargs) */
#define JS_DefineFunction(n, c, a) \
(mmEnv.defineFunction ? (*(mmEnv.defineFunction))(mmEnv.libObj, n, c, a) \
: JS_FALSE)
/* unsigned short *JS_ValueToString(JSContext *cx, jsval v, unsigned int *pLength) */
#define JS_ValueToString(c, v, l) \
(mmEnv.valueToString ? (*(mmEnv.valueToString))(c, v, l) : (unsigned short *)0)
/* unsigned char *JS_ValueToBytes(JSContext *cx, jsval v, unsigned int *pLength) */
#define JS_ValueToBytes(c, v, l) \
(mmEnv.valueToBytes ? (*(mmEnv.valueToBytes))(c, v, l) : (unsigned char *)0)
/* JSBool JS_ValueToInteger(JSContext *cx, jsval v, long *lp); */
#define JS_ValueToInteger(c, v, l) \
(mmEnv.valueToInteger ? (*(mmEnv.valueToInteger))(c, v, l) : JS_FALSE)
/* JSBool JS_ValueToDouble(JSContext *cx, jsval v, double *dp); */
#define JS_ValueToDouble(c, v, d) \
(mmEnv.valueToDouble ? (*(mmEnv.valueToDouble))(c, v, d) : JS_FALSE)
/* JSBool JS_ValueToBoolean(JSContext *cx, jsval v, JSBool *bp); */
#define JS_ValueToBoolean(c, v, b) \
(mmEnv.valueToBoolean ? (*(mmEnv.valueToBoolean))(c, v, b) : JS_FALSE)
/* JSBool JS_ValueToObject(JSContext *cx, jsval v, JSObject **op); */
#define JS_ValueToObject(c, v, o) \
(mmEnv.valueToObject ? (*(mmEnv.valueToObject))(c, v, o) : JS_FALSE)
/* JSBool JS_StringToValue(JSContext *cx, unsigned short *bytes, uint sz, jsval *vp); */
#define JS_StringToValue(c, b, s, v) \
(mmEnv.stringToValue ? (*(mmEnv.stringToValue))(c, b, s, v) : JS_FALSE)
/* JSBool JS_BytesToValue(JSContext *cx, unsigned char *bytes, uint sz, jsval *vp); */
#define JS_BytesToValue(c, b, s, v) \
(mmEnv.bytesToValue ? (*(mmEnv.bytesToValue))(c, b, s, v) : JS_FALSE)
/* JSBool JS_DoubleToValue(JSContext *cx, double dv, jsval *vp); */
#define JS_DoubleToValue(c, d, v) \
(mmEnv.doubleToValue ? (*(mmEnv.doubleToValue))(c, d, v) : JS_FALSE)
/* jsval JS_IntegerToValue(long lv); */
#define JS_IntegerToValue(lv) (((jsval)(lv)
Источник: [url]https://stackoverflow.com/questions/78155329/c-c-and-jsapi-related-error-unresolve-external-symbol-struct-from-a-sampl[/url]
Мобильная версия