Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 4088208
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 20, 20262026-05-20T18:57:10+00:00 2026-05-20T18:57:10+00:00

I am new to .net . I have a managed C++ library. It looks

  • 0

I am new to .net .
I have a managed C++ library. It looks like this.

// header file
namespace cppnetdll
{
public __gc class Class1
{
public:
static int foo_int(void);
};
}

// source file
namespace cppnetdll
{
int Class1::foo_int(void)
{
return 123;
}
}

I can call this from a managed c++ program. When I try to call it from
a C# program, I get the compiler error: “The type or namespace name
‘Class1’ could not be found (are you missing a using directive or an
assembly reference?)” The error refers to the DllImport line below.

Here is the C# code
[code:1:a72c1df571]
namespace csuser
{
public class xxx
{
[DllImport(“cppnetdll.dll”)] extern
int Class1.foo_int();

private void yyy() { int i =
foo_int(); }
}
}[/code:1:a72c1df571]

I have tried various approaches but no success. What is the magic
syntax ?

It’s funny that I can call unmanaged C++ functions from C# fairly
easily by declaring the functions as “C” and exporting from the DLL.
I expected calling managed code to be easier. Maybe it’s so easy
that no one thought of documenting it !

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-20T18:57:10+00:00Added an answer on May 20, 2026 at 6:57 pm

    You do not use a [DllImport] directive to call code that’s written in managed C++. That is only intended for native DLLs that export their functions. Neither of which applies to yours, it isn’t native and you don’t export the function.

    You built a managed assembly, you can treat it just like one you’d have written in C#. Project + Add Reference, Browse tab, navigate to the DLL. Or better yet, put both projects in one solution, use the Projects tab to select the reference.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a class like this: public class LocalizedDataAnnotationsModelMetadataProvider : DataAnnotationsModelMetadataProvider { protected override
I'd like to have some of the ScriptManager features in the new Asp.net MVC
I have a code library written in plain old C++ (no .NET/managed code) and
This is code from a class library: proc.StartInfo = new ProcessStartInfo(CmdPath, +an -b); proc.StartInfo.RedirectStandardOutput
http://jsfiddle.net/umbriel/CvhkM/1080/ In this fiddle I have managed to code so that when I hover
I'm new to ASP.NET, C# and the MVC framework but have managed to build
%windir%\Microsoft.NET\assembly\ is the new GAC . Does it mean now we have to manage
I am new ASP.NET and I have never used a GridView or DataGrid, but
I have a new ASP.NET MVC project (my first), and I had been running
I have a new asp.net mvc project and i am trying to figure out

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.