繁体   English   中英

如何在ac#程序中使用C dll

How to use a C dll within a c# program

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个.c和.h文件被修改为在cpp应用程序中使用,实际上他们有

#ifdef __cplusplus
       extern "C"{
#endif 

预处理线。 我想知道是否以及如何使用ac#program中定义的函数。 也许我必须为这段代码创建一个DLL?

3 个回复

这是一个从MSDN获取的简单示例:

using System;
using System.Runtime.InteropServices;

class PlatformInvokeTest
{
    [DllImport("msvcrt.dll")]
    public static extern int puts(string c);
    [DllImport("msvcrt.dll")]
    internal static extern int _flushall();

    public static void Main() 
    {
        puts("Test");
        _flushall();
    }
}

假设您愿意将现有代码编译为.DLL

你们似乎没有得到它 - 他没有dll,他有c ++源文件:

你有两个选择

  1. 将c ++代码转换为C#并将其直接合并到您的应用程序中

  2. 使用c ++编译器从源文件创建一个dll,并使用PInvoke访问它

如果您需要修改c ++代码来创建dll或使其可以从C#访问,我们无法在不发布完整代码的情况下知道。

这是MSDN博客上的一个明显示例。 您可以使用IntPtr加载DLL路径。

http://blogs.msdn.com/b/jonathanswift/archive/2006/10/03/dynamically-calling-an-unmanaged-dll-from-.net-_2800_c_23002900_.aspx

1 在 ac# 项目中使用 c++ dll

我希望有人可以帮助我。 我有一个名为 LC4_Comm_Lib.dll 的 dll 文件,它允许与设备通信,但是我试图在 ac# 项目中使用它。 老实说,我不知道这是否有效,dll 文件附带 ah 文件 我已经让通信在 C++ 项目中工作,但是我想知道是否有可能让它在我的 C# 项目中工作(猜测 ...

2020-06-04 16:21:10 1 60   c#/ c++/ dll
2 在ac#程序中使用c ++ 11

我正在基于C#的主程序中编写一些图形过滤器。 但是C#对于getpixel / putpixel来说并不快。 我已经看到了解决方法,在C#中使用了不安全的代码 不安全的代码也给了我一些不安全的感觉,因为我了解安全代码和内存清理的好处。 所以现在我在想... 最好将这种不安全 ...

3 如何在 ac# 应用程序中使用 PnP 框架

我们计划关闭租户上的旧式身份验证,这需要对 C# 中的应用程序进行更改。 该应用程序当前使用 CSOM 并使用用户名和密码连接到 SharePoint。 这需要更改为 PnP 框架,并与 clientid 和 secret 连接。 我熟悉 PowerShell,但对 C# 不太熟悉。 我在测试 C ...

4 如何在ac#类库中使用Ninject

我在MVC Web应用程序中使用了Ninject,没有注入业务逻辑类的任何问题。 但我想将数据访问类注入业务逻辑类的构造函数。 逻辑层是一个类库,没有Program.cs类或入口点。 数据访问类 数据访问类接口 业务逻辑类 这就是我需要的,我有一个3层应用程序, ...

5 如何在jQuery中使用ac#变量?

我有一个项目,我打算从SQL调用图像路径。 我已经测试了将变量放置在图像源中 HTML 背后的代码 javascript是否可能有同样的事情? 这是我的jQuery: 现在是否可以将myImage的值替换为jQuery此处列出的实际图像 ...

6 将 FFMPEG 构建到要在 ac# 应用程序中使用的 dll

我想导出仅支持 H.264 编解码器的自定义版本的 FFMPEG,并希望将其构建为 DLL 以在 ac# 应用程序中使用它。 有人可以告诉我是否可能吗? 我目前可以生成一个 .exe 文件。 我试过 --enable-static --enable-shared 并生成一个 exe。 目前, ...

2020-09-02 10:28:34 0 51   ffmpeg
7 如何调试由ac#应用程序调用的dll(C代码)

嗨,我一直在研究ac#应用程序,该应用程序调用dll函数。 dll是C代码,实际上是初始化套接字以读取/写入/操作数据。 dll是使用调试信息编译的。 问题是在某些情况下,c#应用程序会在dll中弹出一条消息,提示“ MemoryAccessViolation”,但不显示任何更多信息。 ...

8 从ac#应用程序中的dll调用和使用C ++异步成员函数的问题

我的C ++类中有几个成员函数,这些成员函数将它们打包为dll,并试图在C#应用程序中使用它们。 我试图创建两个异步函数,方法是简单地使用线程执行它们,然后对它们进行detach()以便它们在结束之前不会阻塞调用者线程。 在基于C ++的应用程序中,每当我使用线程以这种方式调用函数时,它们 ...

9 在AC#项目中使用未知的DLL

我从计算机上的另一个程序获得了一个dll。 根据其名称,它可以具有我自己的c#项目所需的功能。 它似乎也是用c#制作的。 是否可以找出其中的功能并使用它们? ...

10 如何在ac#应用程序中使用SQLite加密扩展(SEE)

我的应用程序是用c#编写的,在Windows 10上使用Visual Studio 2015,我目前正在使用sqlite3.dll来生成和修改数据库,并使用System.Data.SQLite类来加载数据并将数据保存到数据库中。 我现在正在尝试将SEE加密添加到应用程序中,我无法做到正确。 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM