目前,我工作的公司正在为其所有软件实施新的图形用户界面。新的 GUI 将在 WPF 中实现,这需要我们的许多旧软件与 .NET Framework 互操作。我最近被分配了为用本机 C++ 编写的软件实现 WPF 接口的职责。
我决定在 C++/CLI 中实现一个包装器,它将包装原生 C++ 代码。包装器获得的功能随后将在 C# 中使用。
我遇到的问题是,每当我从 C++/CLI 项目中引用头文件(位于本机 C++ 项目中)时,都会遇到许多错误(见下文)。这是一个问题,因为当项目独立构建时,本机代码编译时没有错误。
2>C:\Users\ABGZAMANK\Music\15.02.2013\DeskUpdate\Dev\Source\Libraries\DeskUpdateCore.dll\Sources\FileOperation.h(16): error C2061: syntax error : identifier 'DWORD'
2>C:\Users\ABGZAMANK\Music\15.02.2013\DeskUpdate\Dev\Source\Libraries\DeskUpdateCore.dll\Sources\FileOperation.h(17): error C2061: syntax error : identifier 'CAtlString'
2>C:\Users\ABGZAMANK\Music\15.02.2013\DeskUpdate\Dev\Source\Libraries\DeskUpdateCore.dll\Sources\FileOperation.h(17): error C2535: 'CFExeption::CFExeption(void)' : member function already defined or declared
2> C:\Users\ABGZAMANK\Music\15.02.2013\DeskUpdate\Dev\Source\Libraries\DeskUpdateCore.dll\Sources\FileOperation.h(16) : see declaration of 'CFExeption::CFExeption'
2>C:\Users\ABGZAMANK\Music\15.02.2013\DeskUpdate\Dev\Source\Libraries\DeskUpdateCore.dll\Sources\FileOperation.h(18): error C2146: syntax error : missing ';' before identifier 'GetErrorText'
2>C:\Users\ABGZAMANK\Music\15.02.2013\DeskUpdate\Dev\Source\Libraries\DeskUpdateCore.dll\Sources\FileOperation.h(18): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
ETC...
- 本机 C++ 是否与 C++/CLI 完全兼容,或者是否需要对本机 C++ 代码进行更改?
- 他们是完成这项任务的更合适的方法吗?
- 如果您对错误消息或任何建议有解决方案,请随时发表评论。