Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以将C代码包含到.NET C++/CLI应用程序中?_C_.net_C++ Cli - Fatal编程技术网

是否可以将C代码包含到.NET C++/CLI应用程序中?

是否可以将C代码包含到.NET C++/CLI应用程序中?,c,.net,c++-cli,C,.net,C++ Cli,我正在尝试使用UI表单将C代码库添加到我的Visual C++/CLI应用程序中,并使用CLR进行编译。 我正在使用块外部C{…},但由于下一个错误,它无法编译: 错误D8045:无法使用/clr选项编译C文件'Device.C' 如何包含此代码?多谢各位 这里存在着下一个线索:但它似乎没有得到明确的解决 先谢谢你 编辑:我的代码是下一个: // UI main .h class extern "C"{ #include "Device.h" } 编辑2:正如我所说,这不是复制品。甚至从问题

我正在尝试使用UI表单将C代码库添加到我的Visual C++/CLI应用程序中,并使用CLR进行编译。 我正在使用块外部C{…},但由于下一个错误,它无法编译:

错误D8045:无法使用/clr选项编译C文件'Device.C'

如何包含此代码?多谢各位

这里存在着下一个线索:但它似乎没有得到明确的解决

先谢谢你

编辑:我的代码是下一个:

// UI main .h class

extern "C"{
#include "Device.h"
}

编辑2:正如我所说,这不是复制品。甚至从问题上也没有,这也是我的问题。在那个问题上,我问了关于D8045错误的问题,由于扩展了我的问题,我的声誉很差。因此,我打开此文件是为了询问错误。

您是否尝试右键单击c文件。 属性->C/C++->常规: 公共语言运行时支持=无公共语言运行时支持

请注意,在c文件包含的头文件中,不应该有托管代码。通常情况下,保持大脑的安全,只是做一个新的项目,保持大脑的清洁是比较容易的

项目设置/CLR/无预编译头

我的头被双方使用

#pragma once

#ifdef __cplusplus
extern "C" {
#endif

void func();

#ifdef __cplusplus
}
#endif
我的c代码/编译没有CLR

#include "Souce.h"
#include <stdio.h>

void func()
{
    printf("test");
}

你需要编译它作为一个本地C或C++库,并将它链接到C++ + CLI项目中,即将它包含进去,而不是用/CLR编译它。@ CrasMSTR,我怎么才能做到呢?请原谅我的无知。VisualStudio需要在解决方案中创建一个新项目,并选择VisualC++(Windows Visual C++)>动态链接库DLL或静态库。你应该可以在网上找到更多关于这些的信息。@crashmstr完美,别担心。非常感谢。有可能是对的。目前,我正在尝试将非托管C代码插入到包含接口的C++/CLI托管类中。但是我需要从UI类调用库的方法。有可能实现这种访问?应该没有问题。这不都是重复的,但我得到了这个错误…即使我将我的c文件标记为“无公共语言运行时支持”D8045错误?
#include "Souce.h"

using namespace System;

int main(array<System::String ^> ^args)
{
    Console::WriteLine(L"Hello World");
    func();
    return 0;
}
Hello World
test