zoukankan      html  css  js  c++  java
  • C#与VC++的一些结构体调用

       很久没有写些东西了,发现不写很久就会忘记一些技巧性的东西,然后又要翻阅一堆堆的代码区查,还要试,很囧~~~~

      前阵在做一个海外项目时第三方合作厂家一起开发个文件传送的东东,NND,他们只会用VC++,居然说COM也不会玩,晕死,让我玩找窗口的游戏,这年头居然还有这样的人,真的是远古时代的。

      下面是他们给我的VC++调用DEMO,要我用.NET来实现,真的很看得起我

    代码

      里面自定义了一个FileTransferCommand结构体,还导入了一个Windows的COPYDATASTRUCT结构体,这TMD .NET里面根本没,都是什么什么.H文件里面的。

    代码

    typedef struct tagCOPYDATASTRUCT {
      DWORD dwData; 
      DWORD cbData; 
      PVOID lpData; 
    } COPYDATASTRUCT;

      这是Winuser.h里面定义的,要用.NET实现必须把这些结构体翻译成VC++看的懂的,因为VC++里面就是指针、位、字节什么的,它就没有管你CLR里面struct什么样子,因为在C/C++中struct只是一个简单的数据集合,甚至C的Struct不能包含函数的,一些C++代码也难看见在Struct里面写函数的,而.NET里面Struct相对很少使用,因为Struct在.NET中很像一个Class了,没有太多约束。所以导致了Struct的失真。其实说白了就是.NET对结构体的序列化、C++是否可成功反序列化的问题。

      下面是我对上面代码的.NET翻译,已经运行成功,希望对大家一些写类似代码有帮助。

    代码
  • 相关阅读:
    JS动态添加事件
    Asp.Net验证控件浅析
    word 文档如何加密
    scp 自动带密码参数复制文件到主机
    Zabbix监控Dell服务器相关硬件资源
    Zabbix的history相关数据表数据太大,执行表分区操作过程
    mysql日常操作
    linux下利用tcpdump抓包工具排查nginx获取客户端真实IP实例
    解决ssh登录很慢的问题以及jumpserver登录主机出现:Authentication timeout
    keepalived启动后报错:(VI_1): received an invalid passwd!的解决办法
  • 原文地址:https://www.cnblogs.com/pcmax/p/CSharpVCPlusCompatibility.html
Copyright © 2011-2022 走看看