相关疑难解决方法(0)

编程中的托管代码或非托管代码是什么?

我在我的C#代码中使用了一个特定的命令,该代码运行良好.但是,据说在"非托管"代码中行为不端.

什么是托管代码或非托管代码?

.net c# unmanaged managed definition

145
推荐指数
5
解决办法
16万
查看次数

如何检查结构消耗的字节数?

如果我创建一个相对较大的结构,我如何计算它在内存中占用的字节数?

我们可以手动完成,但如果结构足够大,那么我们该怎么做呢?是否有一些代码块或应用程序?

.net c# byte

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

托管与非托管类型

我正在阅读一篇关于如何sizeof在 C# 中使用运算符的文章

他们说:“用于获取非托管类型的大小(以字节为单位)。”

我知道托管和非托管代码之间的区别。但我的理解是,我用 C# 编写的所有代码(包括所有预定义和用户定义类型)都由 CLR 管理。那么他们所说的“非托管类型”是什么意思?

c# unmanaged managed sizeof

11
推荐指数
1
解决办法
1808
查看次数

无法从GetProcessId(.. hWnd)中提取processID(pInvoke)

即时通讯使用以下方法

    [DllImport("kernel32.dll", SetLastError=true)]
    static extern int GetProcessId(IntPtr hWnd);
Run Code Online (Sandbox Code Playgroud)

尝试获取正在运行的进程的processId,我唯一的信息是HWND.我的问题是它始终返回错误代码6,即ERROR_INVALID_HANDLE.我以为我可能会将参数更改为int类型,但也没有用.我无法枚举正在运行的进程,因为任何时候都可能有多个实例在运行.

谁能看出我做错了什么?

注意:该进程是从暴露给框架的自动化对象中生成的,只提供HWND属性.也许还有另一种方法来获取processID,因为我编写的代码首先负责运行它?

我的代码看起来与此类似......

AutomationApplication.Application extApp = new AutomationApplication.Application(); extApp.Run(); ...

c# pinvoke automation process handle

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

标签 统计

c# ×4

.net ×2

managed ×2

unmanaged ×2

automation ×1

byte ×1

definition ×1

handle ×1

pinvoke ×1

process ×1

sizeof ×1