小编Han*_*ant的帖子

C++/CLI - C#事件的托管类

我有一个c ++类触发一些像事件一样的方法.

class Blah {

   virtual void Event(EventArgs e);
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能将它包装起来,以便在调用方法时调用C#(托管)事件?

我想继承该类并重载事件方法,然后以某种方式调用托管事件.我只是不确定如何实际做到这一点.

events c++-cli

2
推荐指数
1
解决办法
3208
查看次数

.NET WinForm内存消耗

我一直在使用".NET Memory Profiler"来分析WinForm的应用程序.

根据Windows任务经理的说法,我似乎无法理解我的应用程序如何增长到1GB,然后是2GB,然后是3GB的使用量.

使用该工具的专用字节和"所有堆中的总字节数"仅显示为70MB左右.在我的实例列表的顶部,它们主要是String或WeakReferences到许多小对象.

所有应用程序正在显示一个从数据库加载数据的表单.我重复表格的展示/处置周期大约100次,并且增长是连续的.

我现在尝试了大约3个内存分析工具,它们都没有向我展示这种大量的内存消耗来自何处.

任何人都可以帮助或猜测它可能是什么?

谢谢.

vb.net memory winforms

2
推荐指数
1
解决办法
1296
查看次数

当我用计时器更新列表视图时,它会闪烁

我想用计时器(刷新 1 秒)更新我的部分或全部列表视图的项目和子项目内容,但列表视图每秒闪烁一次。有时在重绘过程​​中会丢失子项。因为我的列表视图包含可能随时更改的数据,所以我使用了计时器。

代码:我把这个函数放在定时器的Tick方法中

void Refresh()
{
   foreach(string s in lsttring)
   {
      lv.items.add(s);
      lv.items[i].subitems.add(i);
   }
}
Run Code Online (Sandbox Code Playgroud)

我希望只有更改的项目内容(项目文本和子项目文本)会随着计时器滴答而改变,而不是整个列表视图。

c#

2
推荐指数
1
解决办法
2733
查看次数

用Java中断线程

我想优雅地关闭线程.我在互联网上看到很多代码,并在这里查询.我认为有两种方法可以关闭.

  1. 使用布尔标志.一旦标志chnages我们可以在run方法中打破代码.
  2. 使用中断方法.

我的问题为什么避免使用布尔标志来优雅地关闭线程,当我运行示例程序时,它进展顺利.

java multithreading

2
推荐指数
1
解决办法
113
查看次数

如何修复"检测到Pinvoke堆栈不平衡"错误

我正在尝试使用PostMessage将密钥发送到窗口.但是在我的程序发送密钥后,我在调试窗口中收到错误.

出现的错误是:检测到PInvoke堆栈不平衡.

我想我错误地调用了DLL:

[DllImport("user32.dll")]
public static extern bool PostMessage(IntPtr hWnd, uint Msg, int wParam, Int64 lParam);
Run Code Online (Sandbox Code Playgroud)

c# pinvoke

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

vb调整图像大小以使其自动适合

我是VB 6的新手,我遇到了一个问题.我的照片很大.我想把它放在一个非常小的形式,以便它与短文本看起来很好.

但是,当我在图片框中添加图片时,图片从左上角添加,右下部分被截断.有时我还需要重新调整图片框的大小.因此,我想知道如何使图像自动适应图片框,并在重新调整图片框大小时自动重新调整大小.我已经搜索过帮助但在这方面找不到任何帮助.我也尝试过将AutoSize和AutoRedraw选项设为'true',但它仍然没有用.

谁能帮帮我吗?

vb6 resize image

2
推荐指数
1
解决办法
2万
查看次数

同时在Visual Studio中使用.c和.cpp文件

试图弄清楚如何使用C和C++文件来编译应用程序.不是整个代码,但足以得到这个想法:

main.cpp中:

#include <windows.h>
#include <stdio.h>
#include <string.h>
#include "one.h"
#include "two.h"

int __stdcall WinMain(HINSTANCE hInst, HINSTANCE hInst2, LPSTR lpCmdLine, int nShowCmd) {
    FunctionOne();
    FunctionTwo();
}
Run Code Online (Sandbox Code Playgroud)

one.cpp:

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <gdiplus.h>
#include <gdiplusflat.h>
using namespace Gdiplus;
using namespace Gdiplus::DllExports;

int FunctionOne() {
}
Run Code Online (Sandbox Code Playgroud)

two.c

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

int FunctionTwo() {
}
Run Code Online (Sandbox Code Playgroud)

头文件仅包含这些函数的定义.

现在,如果我使用main.cpp编译它,我会得到一个FunctionTwo的"未解析的外部符号".如果我使用main.c编译它,我会得到与FunctionOne相同的东西.这是否可能,如果是这样,我如何设置项目以便正确编译(Visual Studio 2010)?

如果我根据main的扩展名注释掉备用函数,它编译得很好.

谢谢!

c c++ compiler-errors compilation visual-studio-2010

2
推荐指数
1
解决办法
9459
查看次数

不支持混合类型

请查看以下头文件

#pragma once
using namespace UsbLibrary;

ref class MissileLauncher
{
public:
    MissileLauncher(void);

private:
    //Bytes used in command
    unsigned char UP[10];
    unsigned char RIGHT[10];
    unsigned char LEFT[10];
    unsigned char DOWN[10];

    unsigned char FIRE[10];
    unsigned char STOP[10];
    unsigned char LED_OFF[9];
    unsigned char LED_ON[9];

    UsbHidPort USB;
};
Run Code Online (Sandbox Code Playgroud)

我在visual studio professional 2010中使用Visual C++项目(C++/CLI?).当我运行此代码时,我遇到了很多错误

Error   1   error C4368: cannot define 'UP' as a member of managed 'MissileLauncher': mixed types are not supported 
Error   2   error C4368: cannot define 'RIGHT' as a member of managed 'MissileLauncher': …
Run Code Online (Sandbox Code Playgroud)

usb dll c++-cli visual-studio-2010

2
推荐指数
1
解决办法
1万
查看次数

C++/CLI 包装器 DLL TypeLoadException 字段过多

我有本机(非托管)C++ DLL,它们由单个 C++/CLI dll 包装(通过 .lib 文件链接)。这些非托管 C++ DLL 有相当多的类,其中包含大量方法和大量常量数据(例如字符串、十六进制值等),这些数据在包含的标头中定义。

但对于 C++/CLI 包装器 DLL,它只是本机 dll 的包装和编组层。然而,它的二进制大小与本机 dll 一样大。我相信这导致我达到了硬编码限制,当 C# 应用程序加载它时会引发异常: System.TypeLoadException: Internal limit: Too much fields

C# 应用程序永远不会使用本机 DLL 标头中定义的字段。

它能够通过启用字符串池(减少几MB)来缓解这个问题,但这看起来像是一种黑客行为。

为什么 DLL 的简单包装器与该 DLL 的大小相同?有没有办法可以标记 const 数据,以便 C# 应用程序不会加载它们?

c++-cli visual-c++

2
推荐指数
1
解决办法
906
查看次数

在kendo Treeview中获取所选节点的id

剑道UI专家请帮帮我..

我是Kendo ui的新手.我想在我的代码中返回kendo树视图中Selected节点的id.但它只返回相同的节点.

在选择节点时我想将所选节点的id返回到我的代码,并且在Code中我返回该节点的子元素.

这有什么简单的方法吗?

提前致谢..

我的守则

<script src="~/Scripts/kendo.treeview.min.js"></script>
<script>
    homogeneous = new kendo.data.HierarchicalDataSource({
        transport: {
            read: {
            url: "@Url.Action("datasourcefortree", "Home")",
            type: "POST",
            dataType: "json"
            }
        },
        schema: {
            model: {
            id: "ResourceID",
            hasChildren: true
            }
        }
    });

    $("#treeview").kendoTreeView({
        dataSource: homogeneous,
        dataTextField: "Resource"
    });

</script>
Run Code Online (Sandbox Code Playgroud)

家庭控制器的数据源和方法代码

[HttpPost]
public JsonResult datasourcefortree(int? NodeID)
{

    FNHSessionManager sessionManager = new FNHSessionManager(_connString, FNHSessionManager.DatabaseType.MsSql);
    FNHRepository repository = new FNHRepository(sessionManager);
    int nodevalue = 1;

    if (NodeID == null)
    {
        ResourceMaster tree = repository.RetrieveById(nodevalue);
        List node = new …
Run Code Online (Sandbox Code Playgroud)

asp.net kendo-ui

2
推荐指数
1
解决办法
7724
查看次数