Как исправить фатальную ошибку C1113: #USING не удалось на 'mylib.lib'

StackOverflow https://stackoverflow.com/questions/2146509

  •  23-09-2019
  •  | 
  •  

Вопрос

У меня есть проект, который использует C ++/CLI для реализации графического интерфейса и некоторой фоновой обработки для общения с датчиком. У меня есть все это работающие и много коммунальных материалов, которые мы используем для передачи датчика в .dll. Проблема в том, что я хотел бы объединить библиотеку в основной исполняемый файл, чтобы не беспокоиться о распределении .dlls.

У меня есть демонстрационный проект, который работает нормально, используя .lib, но когда я пытаюсь переключить корпус кода MANI, чтобы создать .LIB вместо .dll я получаю следующую ошибку:

1>------ Build started: Project: MyTool, Configuration: Debug Win32 ------
1>Compiling...
1>stdafx.cpp
1>.\stdafx.cpp : fatal error C1113: #using failed on 'c:\projects\MyTool\debug\MyLib.lib'

Немного гуглить предполагает, что это происходит, когда у вас не было применено переключатель MSIL, но он определенно там в библиотечном проекте.

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

Любые предложения будут очень благодарны!

Это было полезно?

Решение

Я немного догадываюсь, но я подозреваю, что проект «MyTool» имеет проект «MyLib» как один из его «ссылок» («Project» Menu >> Свойства >> Общие свойства >> ссылки).

Когда вы измените тип проекта MyLib на LIB вместо DLL, вам нужно удалить «myLib» из ссылок на проект. Затем вы обновляете зависимости проекта от решения («Project» Menu >> «зависимости проекта ...»), чтобы MyTool зависит от MyLib.

Другие советы

Я также столкнулся с этим. Причина, по которой он провалился, заключалась в том, что я собирал свой родной/управляемый C ++ DLL для Target .net 4.0. И DLL, который я #Using был .NET 2.0 DLL. Таким образом, это не удалось, хотя пути и имена файлов идеально выстроились в линию. В этом случае сообщение об ошибке вообще не была помощи. Я решаю его, обновив независимый DLL до .NET 4.0. Так что обе сборки использовали одну и ту же фреймворк .NET.

Если вы ссылаетесь на смешанный режим (управляемый/нативный) DLL, вы можете получить эту ошибку. Который не должен, если проект использует CLR, даже если один из исходных файлов этого не делает. Но в любом случае, если это так, попробуйте удалить ссылку из проекта | Свойства | Общие свойства | Ссылки, а затем повторно его.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top