如何转换VC++;代码到C#?
我有VC++代码,但我想将其转换为C#。我尝试使用不同的软件,但它不会将VC++的某些功能转换为C#。我该怎么做?或者有没有办法直接在c#中使用VC++代码 例如,这是VC++方法,我想将其转换为c#如何转换VC++;代码到C#?,c#,visual-c++,c#-4.0,c#-3.0,C#,Visual C++,C# 4.0,C# 3.0,我有VC++代码,但我想将其转换为C#。我尝试使用不同的软件,但它不会将VC++的某些功能转换为C#。我该怎么做?或者有没有办法直接在c#中使用VC++代码 例如,这是VC++方法,我想将其转换为c# void init\u gf(整数多边形) { int m,b,p,v; //从以前的设置返回存储 如果(日志) { 免费(原木); 免费(alog); 免费(rspoly); rspoly=NULL; } //找到顶部位,从而找到符号大小 对于(b=1,m=0;b您有以下选项 只有部分代码没有自
void init\u gf(整数多边形)
{
int m,b,p,v;
//从以前的设置返回存储
如果(日志)
{
免费(原木);
免费(alog);
免费(rspoly);
rspoly=NULL;
}
//找到顶部位,从而找到符号大小
对于(b=1,m=0;b您有以下选项
只有部分代码没有自动转换为手动移植到C#
将VC++代码设置为COM可见,并使用.NET中的COM交互
在C#中完成组件的重写&仅使用VC++代码引用应用程序逻辑
可能会发生这样的情况:转换后的代码包含不安全的操作,需要使用不安全标志进行编译。我建议您通过查看自动转换的代码和手头的要求来做出决定,看看是否值得使用自动转换器进行转换。您不能只是自动转换它
转换纯逻辑是可能的,但是C++和C语言使用完全不同的库。C++使用C运行时、MFC等,C++使用.NETBCL。你需要学习至少一点你的C++代码所使用的类和方法的.NET等价物。
例如,您可以使用数组来转换malloc调用:
(int*)malloc(sizeof(int)*logmod);
-->
新建int[logmod]();
如果代码很多,可以考虑使用C++ + CLI和创建混合模式库,通过将C++代码原样保留并公开托管代理的类型。 有没有办法直接在c#中使用VC++代码
C++/CLI应用程序由.NET管理,如果是这种情况,那么您只需在C#项目中添加对项目或dll的引用,并正常使用它即可 如果它是本机非托管代码,则可以使用C#或C++/CLI为其创建包装器,也可以使用p/Invoke直接调用它 编辑:“我对插入符号运算符的理解是错误的,”有点匆忙地回答,“很抱歉!已删除。我认为没有直接的方法可以做到这一点。好吧,您可能需要重写它。根据它是什么类型的代码,您可以试着用它生成DLL。本例中的
^
运算符与赋值运算符(^=
)一起使用。”,这使它成为一个按位异或运算。这将是一个按位AND运算。您可以检查C/C运算符的完整列表++
void init_gf (int poly)
{
int m,b,p,v;
// Return storage from previous setup
if (log)
{
free (log);
free (alog);
free (rspoly);
rspoly = NULL;
}
// Find the top bit, and hence the symbol size
for (b = 1, m = 0; b <= poly; b <<= 1)
m++;
b >>= 1;
m--;
gfpoly = poly;
symsize = m;
// Calculate the log/alog tables
logmod = (1 << m) - 1;
log = (int *) malloc (sizeof (int) * (logmod + 1));
alog = (int *) malloc (sizeof (int) * logmod);
for (p = 1, v = 0; v < logmod; v++)
{
alog[v] = p;
log[p] = v;
p <<= 1;
if (p & b)
p ^= poly;
}
}