Can we compile C library as .Net dll (containing and opening access to all C libs functions) by just compiling cpp project containing code like
extern "C" {
#include <library.h>
}
with /clr:pure
argument with VS? (VS10)
Or we should do something more trickey?
This may be of interest to you: Compiling your C code to .NET
Create a C compiler occil.exe
To create a .NET dll from a c code e.g stack.c
Step1: build stack.c to IL code
occil /ostackdll.il /c /Wd /9 /NStackLib.Stack stack.c
Step2: build to generated IL code to .NET DLL
ilasm /DLL stackdll.il
Then you can reference the stack.dll in a c# program and call the C function in stack.c
I found it is the best to use the old style Managed C++ for this.
CLR:PURE
just wont cut it.
Example:
extern "C" int _foo(int bar)
{
return bar;
}
namespace Bar
{
public __gc class Foo
{
public:
Foo() {}
static int foo(int bar)
{
return _foo(bar);
}
};
};
Compile with: /clr:oldSyntax
Now you can reference the assebmly, and call Bar.Foo.foo()
from .NET.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With