Я думаю, что идеальным решением будет это
if ($(this).hasClass("your_Class"))
alert("positive");
else
alert("Negative");
Это довольно прямое оформление идентификатора на работе. Префикс imp_
автоматически генерируется компилятором, он экспортирует указатель на функцию, который позволяет оптимизировать привязку к экспорту DLL. По языковым правилам imp_ имеет префикс ведущего подчеркивания, требуемого, поскольку он живет в глобальном пространстве имен и генерируется реализацией и в противном случае не отображается в исходном коде. Таким образом, вы получаете _imp_
.
. Следующее, что происходит, заключается в том, что компилятор украшает идентификаторы , чтобы позволить компоновщику распознавать неверные совпадения. Весьма важно, потому что компилятор не может диагностировать несоответствия декларации между модулями и самостоятельно диагностировать их во время выполнения very .
Во-первых, существует C ++-оформление - очень сложная схема, которая поддерживает перегрузки функций. Он генерирует довольно странные имена, обычно в том числе много? и @ символов с дополнительными символами для аргументов и возвращаемых типов, так что перегрузки недвусмысленны. Затем есть декорация для идентификаторов C, они основаны на вызывающем соглашении. Функция cdecl имеет одно ведущее подчеркивание, функция stdcall имеет лидирующий знак подчеркивания и конечный @n, который позволяет диагностировать несогласованные объявления аргументов, прежде чем они будут дисбаланс стека.
Таким образом, вы получили ошибку компоновщика, потому что вы забыли указать ссылку на C, линкеру было предложено в значительной степени сопоставить его с 64-битным кодом. оформленное имя C ++ с мягко оформленным названием C. Затем вы установили его с помощью extern "C"
, теперь вы получили единственное добавленное подчеркивание для cdecl, превратив _imp_
в __imp_
.