Click here to Skip to main content
Click here to Skip to main content

Tagged as

Calling a J# DLL from .NET 4.0

, 25 Feb 2011 CPOL
Rate this:
Please Sign up or sign in to vote.
Calling a J# DLL from .NET 4.0

Introduction

When you call a J# DLL from .NET 4.0 (or later) code, you will get an error that vjsnativ.dll could not be located. The work-around to date has been to copy vjsnativ.dll to the directory of the primary application calling the code. For an app, this is workable although a bit of a pain. But for web apps, this can be very problematic as you're talking the underlying web server.

It turns out there's a much easier approach. The following code needs to be called in your C# code before instantiating any classes or calling any code in a J# DLL. After you call this, you can then call all of your J# code. The trick is simple – you load the library explicitly and then Windows already knows its location.

Code

using System;
using System.IO;
using System.Runtime.InteropServices;
using net.windward.api.csharp;
namespace TestNet40
{
class Program
{
[DllImport("kernel32", SetLastError = true)]
static extern IntPtr LoadLibrary(string lpFileName);
static void Main(string[] args)
{
if (Environment.Version.Major > 4)
{
string folder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), @"..\Microsoft.NET\Framework\v2.0.50727");
folder = Path.GetFullPath(folder);
LoadLibrary(Path.Combine(folder, "vjsnativ.dll"));
}
// now call J# code
Report.Init();
Console.Out.WriteLine("success!");
}
}
}

Calling It

The best approach is if you can place this in your initialization well before you make any calls to any J# libraries. That way, you don't need to check before each call.
Originally posted at Calling J# code from .NET 4.0

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

David Thielen
Chief Technology Officer Windward Studios
United States United States
CTO/founder - Windward Studios

Comments and Discussions

 
-- There are no messages in this forum --
| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.150123.1 | Last Updated 25 Feb 2011
Article Copyright 2011 by David Thielen
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid