I want to use the ilLoadL function from the devIL library using C#. But when I try to add DevIL.dll to my project it gives me this error:
A reference to the "DevIL.dll" could not be added.Please make sure that the file is accessible and that it is a valid assembly or COM component.
Now i've been searching online for a while and it seems that DevIL does not support .NET? There is a .NET wrapper created for it. I tried that but it doesn't contain the ilLoadL function and such. Only the LoadBitmap and LoadILU.
Is there a way to use DevILs ilLoadL function in C#?
Have you tried using the nuget package? http://www.nuget.org/packages/DevIL.redist/
Related
I'm having a hard time finding any information on this so maybe someone here can enlighten me. I've coded a module in C++/Cli, everything is good, but for some reason in the reference list(When I right-click on the VS project to add a reference), I can't find Microsoft.Speech in the list.
There is another one that's equivalent, it's called System.Speech, but I absolutely need Microsoft.Speech. Since the module is pure managed code, shouldn't I have access to all the .NET modules? Or maybe there is a pack I can download to extend it?
Thanks.
Update:
I'm referring to these two calls:
using Microsoft.Speech.AudioFormat;
using Microsoft.Speech.Recognition;
Which can be found in the Kinect SDK samples. I need those in C++/CLI because I cannot access the kinect's recognizer if I use the System native version.
Just in case you are not able to find Microsoft.Speech.dll in the .NET tab, you can do the following:
Import Microsoft.Speech.dll from the following location:
C:\Windows\assembly\GAC_MSIL\Microsoft.Speech\11.0.0.0__31bf3856ad364e35\Microsoft.Speech.dll
Here's the solution :
#using "Microsoft.Speech.dll"
using namespace Microsoft::Speech;
using namespace Microsoft::Speech::Recognition;
Everything now works perfectly.
I am wondering how to use VAMP Plugins with C# for Visual Studio 2008? I have downloaded multiple VAMP Plugins already. Currently, I have tested them using Sonic Visualiser and it looks great! However, I am having some problems incorporating it to my C# program.
My problem is that whenever I try to reference the .dll file, it gives me an error, something about 'make sure you are referencing a valid assembly or COM object'. How do I get around this?
Thank you very much!
I think you mean these: http://www.vamp-plugins.org/
As far as I can see, they are written in C++, so you can't add them as reference. You need to use P/Invoke to use those plugins.
I am using IKVM to wrap a java application into a dll. I am not particularly familiar with IKVM so I apologize in advance for not providing enough information. Anyway, I am using a c# library that makes a call to a dll created by IKVM. However the library I am using appears to require both IKVM.OpenJDK.ClassLibrary and IKVM.OpenJDK.Core. The only problem is both of these libraries contain java.util, which causes a namespace ambiguity for any class in java.util (Vectors, hastables, etc). I cannot fine a way to reference all instances of objects found in the java.utils class to explicitly use either ClassLibrary or Core. Is there anyway to reference a namespace to instruct my library to use one or the other for java.util calls?
In the current version of IKVM there is no IKVM.OpenJDK.ClassLibrary. It look like that you mix different versions of IKVM.
I'm trying to use the lame_enc.dll file from LAME in a C# project, but adding the thing seems impossible.
I keep getting an error that says that a reference could not be added and to please check if the is accessible, a valid assembly or COM component.
I have no C++ experience, though I would like to use the functionality. Right now I'm using Process from the .NET framework to call lame.exe and do stuff, but I'd like to know if there's another way.
You can only add managed assemblies as a reference to a managed project. What I normally do in this situation is to add it as ressource instead with "copy local" settings. That way the DLL is tied to and deployed with your project. I then use DllImport to manually get the APIs I need from that DLL.
You have to use P/Invoke to call unmanaged APIs from managed code.
To use an unmanaged dll (native C++) in C#, you have to use DllImport, not adding a reference to the project in visual studio (and that is why you get an error).
Here is the documentation of DllImport from the MSDN.
You will need to use PInvoke to call functions in your native lame dll. However, you will only be able to call functions that have been exported as "C" style.
You can use a tool like "PInvoke Interop Assistant" that will help you when working out the PInvoke call signatures to make calls from C# to your native dll:
http://clrinterop.codeplex.com/releases/view/14120
I am working on C# for a few mounths. Mainly I am working on C++.
On C++ using the visual studio if I wanted to add a a static library I could add it using the configuration of the project add the header and lib and path.
When using C#, I think it is something like DLL, all those assemblies are complied on late binding ?
In addition using the visual studio for the C# I can add a reference. Is this the equel thing as I wrote in the beginning of the question ? only for something like DLL ?
If your want use a Win32 DLL in C#, you must write a C# wrapper for it.
C# is managed, and everything you reference as an assembly gets linked at runtime, as with DLL's in C++. The compiler will check at compile time that you are using your assemblies properly, but it wont link them yet. You can use http://research.microsoft.com/en-us/people/mbarnett/ILMerge.aspx to merge assemblies together, as a post-build step.