小编Gel*_*ion的帖子

在 C# 中调用包含回调的 C++ 函数

大家好,我正在尝试在 C# 中调用这个 C++ 函数:

BOOL __stdcall CodecStart(int hRadio,void __stdcall (*CallbackFunc)(void *),void *CallbackTarget);
Run Code Online (Sandbox Code Playgroud)

这是来自此处http://www.winradio.com/home/g305_sdk.htm的 WinRadio api 。

我确实发现其他人要求在网上调用这个特定的函数,他们有:

    public delegate void CallbackFunc( IntPtr p);

    [DllImport("WRG305API.dll")]
    public static extern bool CodecStart(int hRadio, CallbackFunc func, IntPtr CallbackTarget);
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何进一步实施。

关于如何称呼它的任何想法或指导?

非常感谢

c# c++ api callback dllimport

6
推荐指数
1
解决办法
8862
查看次数

c#中的自定义复合语句

我想编写自己的自定义复合语句,它们具有类似的机制usinglock机制,它们在编译之前在语句块的开头和结尾注入代码.

我一直在尝试寻找可能提出类似问题的问题,但我无法正确地弄清楚这种"代码范围"被称为什么,除了文档说这些是复合语句.

我知道"锁定"和"使用"是关键字.我不想拥有自己的关键字,因为我知道这是不可能的.

我不确定在c#中是否可以这样做,例如:

而不是做:

StartContext(8);
//make method calls
EndContext();
Run Code Online (Sandbox Code Playgroud)

这可以减少到:

DoSomethingInContext(8) {
    //make method calls
}
Run Code Online (Sandbox Code Playgroud)

当然,这不一定只是一个单行调用.encapuslated代码的开头和结尾可以是由自定义复合语句插入的多行代码.

c# statements

6
推荐指数
2
解决办法
273
查看次数

File.Exists检测问题

我写了一个程序的bizzare问题,其中命令File.Exists()并不总是在与可执行文件相同的目录中检测到相同的文件.

我有类似的东西:

    if (File.Exists("TextFile1.txt"))
        {
        //do some stuff
        }
Run Code Online (Sandbox Code Playgroud)

但奇怪的是,如果我在cmd提示符下运行此可执行文件,它不会检测到该文件.但是,如果我通过另一个进程启动此可执行文件,它将检测文件精细.

关于这个bizzare问题的任何想法?谢谢.

.net c#

0
推荐指数
1
解决办法
262
查看次数

标签 统计

c# ×3

.net ×1

api ×1

c++ ×1

callback ×1

dllimport ×1

statements ×1