小编Mas*_*ier的帖子

在将C DLL包含到C#中时,对PInvoke函数的调用使堆栈不平衡

我编写了一个C DLL和一些C#代码来测试包含这个DLL并从中执行函数.我对这个过程并不太熟悉,每当从C#源代码调用DLL函数时,我都会收到PInvokeStackImbalance异常.代码如下(我已经评论了大多数代码来隔离这个问题):

C#包含代码:

using System;
using System.Runtime.InteropServices;
using System.IO;

namespace TestConsoleGrids
{
    class Program
    {

        [DllImport("LibNonthreaded.dll", EntryPoint = "process")]
            public unsafe static extern void process( long high, long low);

        static void Main(string[] args)
        {
            System.Console.WriteLine("Starting program for 3x3 grid");

            process( (long)0, (long)0 );

            System.Console.ReadKey();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

C++ DLL函数代码

extern "C" __declspec(dllexport) void process( long high, long low );

void process( long high, long low )
{
    // All code commented out
}
Run Code Online (Sandbox Code Playgroud)

Visual Studio生成了dllmain代码(我不明白这个构造,所以我包括它)

// dllmain.cpp : Defines the …
Run Code Online (Sandbox Code Playgroud)

c# windows dll pinvoke dllimport

3
推荐指数
1
解决办法
4296
查看次数

系统托盘弹出Windows 7风格

我想要这样的东西:

托盘弹出窗口

此窗口不可调整大小,并在与其相关的系统托盘图标上方对齐.

我有这个:

托盘弹出窗口

这是可调整大小的,它可以在任何地方使用.如果单击Win 7中的音量控件,它将始终直接弹出图标上方.这是理想的.

我发现这个参考我认为试图解决同样的问题(虽然图像已经死了但无法判断),

但我正在使用WPF,我不知道如何从我的Window对象中获取它们引用的这些Form对象.这是我窗口的XAML声明:

<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
x:Class="WirelessControl.Window1"
x:Name="Window"
Title="Window1"
Width="260" Height="370" mc:Ignorable="d" WindowStyle="None"></Window>
Run Code Online (Sandbox Code Playgroud)

我觉得基于Windows的常见程度,必须有一个相当简单的方法来实现这一点.

ResizeMode="NoResize" 导致我的窗口边框消失,所以没有帮助.

谢谢你们,我希望我足够全面.

wpf system-tray windows-7

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

标签 统计

c# ×1

dll ×1

dllimport ×1

pinvoke ×1

system-tray ×1

windows ×1

windows-7 ×1

wpf ×1