Ошибка клиента Jinn при создании ком-объекта 1c

Обновлено: 03.07.2024


При создании проекта вы выбрали «новое приложение Win32» или «новое консольное приложение»? Я предполагаю, что вы вставили код Win32 в консольный проект..

Я новичок в stackoverflow, не имею права комментировать вашу проблему напрямую. Поэтому я говорю здесь. Я пробую многие методы безрезультатно,перезагрузите компьютер, устраните проблему! надеюсь, что это поможет вам.

19 ответов 19

Проверьте конфигурацию проекта. Linker->System->SubSystem должна быть Windows.



Пожалуйста, не лишайте других людей возможности портить свои публикации. Размещая в сети Stack Exchange, вы предоставляете Stack Exchange безотзывное право в соответствии с лицензией CC BY-SA 3.0 на распространение этого контента (т. е. независимо от вашего выбора в будущем). В соответствии с политикой Stack Exchange распространяется не подвергшаяся вандализму версия поста. Таким образом, любой вандализм будет отменен. Если вы хотите узнать больше об удалении публикации, см. раздел Как работает удаление?

Если вы используете CMake, вам необходимо установить флаг WIN32 в add_executable

Дополнительную информацию см. в документе CMake.


У меня была такая же проблема, когда я пытался создать исполняемый файл из программы, не имеющей метода main(). Когда я включил образец метода main(), подобный этому



Щелкните правой кнопкой мыши проект. Свойства->Свойства конфигурации->Общие->Компоновщик.

Я обнаружил, что необходимо установить два параметра. В разделе Система: Подсистема = Windows (/SUBSYSTEM:WINDOWS) В разделе Дополнительно: EntryPoint = main

Я тоже столкнулся с той же проблемой и обнаружил, что выбрал "новое приложение Win32" вместо "новое консольное приложение Win32". Проблема решилась, когда я переключился. Надеюсь, это поможет вам.


в приведенном выше ответе говорится, что для подсистемы Windows можно сделать это вместо создания нового проекта (поскольку консольные приложения имеют консоль в качестве подсистемы)

Аналогично @仲耀晖 У меня был неправильный тип приложения, настроенный для dll. Я предполагаю, что тип проекта изменился из-за неправильной вставки копии, как предложил @Daniel Struhl.

Как проверить: щелкните проект правой кнопкой мыши -> свойства -> Свойства конфигурации -> Общие -> Параметры проекта по умолчанию -> Тип конфигурации.

Проверьте, содержит ли это поле правильный тип, например. «Динамическая библиотека (.dll)», если проект является dll.

Это крайний случай, но вы также можете получить эту ошибку, если создаете приложение MFC с помощью CMake.

В этом случае необходимо добавить следующие определения:

Если вы компилируете с юникодом, необходимо добавить следующие свойства:

set_target_properties(СВОЙСТВА MyApp COMPILE_DEFINITIONS _AFXDLL,_UNICODE,UNICODE,_BIND_TO_CURRENT_CRT_VERSION,_BIND_TO_CURRENT_MFC_VERSION LINK_FLAGS "/ENTRY:\"wWinMainCRTStartup\"" )


к вашему проекту и все заработает своими причинами потому что Visual Studio попыталась найти основную функцию для запуска проекта и не нашла


Выберите проект. Свойства->Свойства конфигурации->Компоновщик->Система.

Моя проблема решена установкой ниже опции. В системе: SubSystem = Console(/SUBSYSTEM:CONSOLE)

Или вы можете выбрать последний вариант как "наследовать от родителя".


Это сработало для меня:

(У меня пока недостаточно представителей для встраивания изображений – извините за это.)

Я зашел в Project --> Properties --> Linker --> System.

Моя платформа была установлена ​​как Active(Win32) с подсистемой "Windows". Я делал консольное приложение, поэтому установил для него значение "Консоль".

Затем я переключил свою платформу на "x64".

В Windows 10, Visual Studio 2019, в проекте, свойствах, переключении с active(32) (x86) на x64 (поэтому мне нужно было повторно добавить «путь включения» моей библиотеки, «путь библиотеки» (в пути компоновщика) и название библиотеки в дополнительных зависимостях). Подсистема в компоновщике/системе по-прежнему была «Консоль (/SUBSYSTEM:CONSOLE)», и она работает хорошо: я смог перестроить решение без ошибки. Таким образом, я считаю (не будучи абсолютно уверенным), что основным изменением для меня было x86 (32) на 64. Таким образом, подтверждая вышеприведенный комментарий.

Решение для меня таково: я очищаю и решение, и проект. И просто перестроить проект. Эта ошибка возникает из-за того, что я пытался удалить основной файл (сохранить только файлы библиотеки) в предыдущей сборке, поэтому в текущей сборке старый материал все еще хранится в каталоге сборки. Вот почему нерешенные вещи произошли. "неразрешенный внешний символ _main, указанный в функции "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ)"

Старый поток, но для меня он начал работать (после выполнения всех советов выше), когда я переименовал int main(void) в int wmain(void) и удалил WIN23 из add_executable() cmake.

Если это система Windows, то это может быть связано с тем, что вы используете 32-разрядную библиотеку winpcap на 64-разрядном компьютере или наоборот. Если это 64-битный компьютер, скопируйте библиотеку winpcap и заголовочные файлы package.lib и wpcap.lib из winpcap/lib/x64 в каталог winpcap/lib и перезапишите существующий

В этом проекте не используется WinPcap (или Npcap), так что, вероятно, это не ответ в данном конкретном случае. Проблема в этом случае, вероятно, заключается в том, что это программа подсистемы Windows, учитывая, что она имеет основную функцию WinMain(), но компонуется так, как если бы это была программа консольной подсистемы, которая, как ожидается, будет иметь функцию main() или main. () основная функция.

Проблема может быть связана с макрокомандой в SDL_main.h

В этом макросе ваш main()<> переименовывается в SDL_main()<>, потому что SDL требуется свой собственный main()<> на некоторых из многих платформ, которые они поддерживают, поэтому они меняют вашу. В основном они достигают своей цели, но на моей платформе создают проблемы, а не решают их. Я добавил 2-ю строку в SDL_main.h, и для меня все проблемы исчезли.

Если вам не нравится предупреждение компилятора, вызванное этой парой строк, закомментируйте обе строки.

Если ваш код находится в WinApp()<>, у вас вообще нет этой проблемы. Этот ответ может помочь, только если ваш основной код находится в main()<> и ваша платформа похожа на мою.

У меня есть: Visual Studio 2019, Windows 10, x64, я пишу 32-разрядное консольное приложение, которое открывает окна с помощью SDL2.0 в рамках учебного курса.

Читайте также: