标签: unmanaged

使用哪一个:托管与非托管哈希算法

在常规的C#应用​​程序中,哪个类用于散列:xxxManagedxxx(即SHA1Managedvs SHA1)以及为什么?

c# hash unmanaged managed

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

在C#中通过.NET应用程序在C++中开发Win32应用程序有什么优势?

我使用Visual C++和Win32 API学习了Windows编程.如今,似乎大多数应用程序都是使用C#在.NET中开发的.据我所知,大多数情况下,本机代码和托管代码之间没有太大的性能差异.所以我想知道,如果我今天开始编写一个新的桌面应用程序,是否有任何理由(除了我对C++更熟悉的事实),我可能想用非托管C++编写它.NET?使用C++和本机代码还有一些优势吗?或者在Windows平台上用.NET或多或少取代了这种方法?

当然我知道编写低级设备驱动程序和类似程序的人不会在.NET中这样做.我要求参考典型的面向客户端的应用程序,这些应用程序不会直接进行硬件调用.

.net c# c++ unmanaged managed-code

16
推荐指数
4
解决办法
2734
查看次数

为什么我需要非托管代码的可再发行组件包?(msvcp100.dll)

  1. 'msvcr XXX .dll'和'msvcp XXX .dll' 的目的是什么?msvc r和msvc p之间有什么区别?
  2. 如果它只是一个非常简单且非托管的.dll,为什么我需要将它们链接到我的二进制文件?是因为它是链接器的一部分吗?为什么默认情况下它不在Windows系统目录中作为公共库?

我只是想了解为什么在Windows中有些事情如此复杂......

c redistributable dependencies unmanaged runtime

16
推荐指数
1
解决办法
4610
查看次数

非非托管类型和托管类型之间有什么区别?

当我为实验目的编写以下代码段时,它引发了悬停错误(请参见屏幕截图):

无法声明指向非非托管类型的'动态'

片段:

dynamic* pointerToDynamic = &fields;
Run Code Online (Sandbox Code Playgroud)

虽然代码显然是不允许的(你不能使用托管类型的地址),但它提出了一个问题:什么是非非托管类型,它与托管类型有什么不同?或者只是Visual Studio试图搞笑?

在此输入图像描述

.net c# types unmanaged managed

16
推荐指数
1
解决办法
5100
查看次数

检测到CallbackOnCollectedDelegate

我是一个应用程序的子类.我的子类Window过程在DLL中.我在DLL中的子类代码看起来有点像这样(剥离,删除其他不相关的部分).

class FooBar
{
  private delegate int WndProcDelegateType(IntPtr hWnd, int uMsg, 
                                           int wParam, int lParam);

  private const int GWL_WNDPROC = (-4);
  private static IntPtr oldWndProc = IntPtr.Zero;
  private static WndProcDelegateType newWndProc = new 
                                                  WndProcDelegateType(MyWndProc);

  internal static bool bHooked = false;

  [DllImport("user32.dll")]
  private static extern IntPtr SetWindowLong(IntPtr hWnd, int nIndex, 
                                             WndProcDelegateType dwNewLong);

  [DllImport("user32.dll")]
  private static extern IntPtr SetWindowLong(IntPtr hWnd, int nIndex, 
                                             IntPtr dwNewLong);


  [DllImport("user32")]
  private static extern int CallWindowProc(IntPtr lpPrevWndFunc, IntPtr hWnd, 
                                           int Msg, int wParam, int lParam);

  private static int …
Run Code Online (Sandbox Code Playgroud)

c# winapi unmanaged

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

如何从非托管COM DLL生成类型库

我必须在我的.NET应用程序中使用第三方非托管COM dll.我需要修改此程序集以生成自定义RCW.为了编辑Interop程序集,我需要特定程序集的类型库.可以任何人解释我如何从非托管COM DLL生成类型库?

regsvr32中没有选项来生成类型库.

谢谢你,最诚挚的问候,Robo.

c++ com regsvr32 unmanaged typelib

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

如何获取Win32线程的名称?

我知道在Windows下设置线程名称的非直观过程(请参阅" 如何将名称设置为Win32线程? ").有没有办法获得线程的名称?我没有看到任何允许我这样做的Windows API(http://msdn.microsoft.com/en-us/library/windows/desktop/ms684847 ( v=vs.85 ) .aspx).

c++ windows winapi multithreading unmanaged

14
推荐指数
3
解决办法
8896
查看次数

在C++中设置Windows服务描述

CreateService用来安装Windows服务可执行文件但是我似乎无法找到如何设置服务的描述.

有谁知道如何做到这一点?

谢谢.

c++ unmanaged

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

为什么非托管结构不能成为托管类的成员?

我知道在C++/CLI中,在定义托管类时不能使用非托管类型:

public struct Unmanaged
{
    int x;
    int y;
};

public ref class Managed
{
    int one;
    Unmanaged two;  //error C4368
};
Run Code Online (Sandbox Code Playgroud)

我不明白为什么.Unmanaged它只是一个本机类型的集合 - 它的大小是已知的,当然它(我的意思是定义它的内存块)将被Managed"托管堆"内部的" 内存块"移动,并且元数据中存储的任何偏移都将保持有效,不是吗?就像声明了整数或浮点数一样?

为什么我们不能混合类型?

interop unmanaged c++-cli

14
推荐指数
1
解决办法
7626
查看次数

Swift(iOS 8 SDK)将非托管<ABMultiValueRef>转换为ABMultiValueRef

我需要从AddressBook框架转换此函数的返回值:

ABRecordCopyValue(nil, kABPersonPhoneProperty)
Run Code Online (Sandbox Code Playgroud)

到ABMultiValueRef类型的值

此功能目前标记为:

func ABRecordCopyValue(record: ABRecordRef!, property: ABPropertyID) -> Unmanaged<AnyObject>!
Run Code Online (Sandbox Code Playgroud)

所以我可以将它转换为Unmanaged,如下所示:

ABRecordCopyValue(person, kABPersonPhoneProperty) as Unmanaged<ABMultiValueRef>
Run Code Online (Sandbox Code Playgroud)

但是,我怎样才能将它作为ABMultiValueRef,以便我可以将它传递给这个函数?

func ABMultiValueGetIndexForIdentifier(multiValue: ABMultiValueRef!, identifier: ABMultiValueIdentifier) -> CFIndex
Run Code Online (Sandbox Code Playgroud)

我这样做了:

let managedPhones = Unmanaged.fromOpaque(phones.toOpaque()).takeUnretainedValue() as ABMultiValueRef
Run Code Online (Sandbox Code Playgroud)

我一直收到这个编译错误:

Bitcast requires both operands to be pointer or neither
%89 = bitcast %objc_object* %88 to %PSs9AnyObject_, !dbg !325
LLVM ERROR: Broken function found, compilation aborted!
Command /Applications/Xcode6-Beta3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift failed with exit code 1
Run Code Online (Sandbox Code Playgroud)

unmanaged abrecordcopyvalue swift

14
推荐指数
1
解决办法
4408
查看次数