易截截图软件、单文件、免安装、纯绿色、仅160KB

C# 调用 c++ dll 的一些问题总结

1.c++的到处函数只要在函数申明的时候加个导出关键字就可以了
2.参数类型问题,
一般的c++中char * 对应 c#中的string
而c++中 char **类型的参数对应c#中 ref string 这种一般都是用来返回字符串的!
3.函数入口问题,一般会出现 "找不到入口点" 这个问题不是由你引起的,而是系统自己把名字改了,改成什么样的名字建议你用eXeScope 打开dll看看里面的全称,比如我从网上下载的一个dll的导出方法列表
导出, CryptoPP32.dll
序列 地址 名字
00000001 100489D0 ?Base64DecodeFile@CryptoPP32@@YA_NPBD0@Z
00000002 1004FAC0 ?Base64DecodeString@CryptoPP32@@YA_NPBDPAPAD@Z
00000003 100488E0 ?Base64EncodeFile@CryptoPP32@@YA_NPBD0@Z
00000004 1004F960 ?Base64EncodeString@CryptoPP32@@YA_NPBDPAPAD@Z
00000005 10045EB0 ?FreeString@CryptoPP32@@YAXPAD@Z
00000006 10048800 ?GunzipFile@CryptoPP32@@YA_NPBD0@Z
00000007 10048720 ?GzipFile@CryptoPP32@@YA_NPBD0H@Z
00000008 10048E30 ?HMAC_SHA1_DecryptFile@CryptoPP32@@YA_NPBD00@Z
00000009 10048B90 ?HMAC_SHA1_DecryptString@CryptoPP32@@YA_NPBD0PAPAD@Z
0000000A 10048D40 ?HMAC_SHA1_EncryptFile@CryptoPP32@@YA_NPBD00@Z
0000000B 1004B540 ?HMAC_SHA1_EncryptString@CryptoPP32@@YA_NPBD0PAPAD@Z
0000000C 10048AB0 ?HexDecodeFile@CryptoPP32@@YA_NPBD0@Z
0000000D 1004FE10 ?HexDecodeString@CryptoPP32@@YA_NPBDPAPAD@Z
0000000E 1004B3D0 ?HexEncodeFile@CryptoPP32@@YA_NPBD0@Z
0000000F 1004FC20 ?HexEncodeString@CryptoPP32@@YA_NPBDPAPAD@Z
00000010 1004C260 ?RSAES_OAEP_DecryptString2@CryptoPP32@@YA_NPBD0PAPAD@Z
00000011 1004CD60 ?RSAES_OAEP_DecryptString@CryptoPP32@@YA_NPBD00000000PAPAD@Z
00000012 1004C4C0 ?RSAES_OAEP_DecryptString@CryptoPP32@@YA_NPBD0PAPAD@Z
00000013 1004B780 ?RSAES_OAEP_EncryptString2@CryptoPP32@@YA_NPBD0PAPAD0@Z
00000014 1004C790 ?RSAES_OAEP_EncryptString@CryptoPP32@@YA_NPBD00PAPAD0@Z
00000015 1004BCF0 ?RSAES_OAEP_EncryptString@CryptoPP32@@YA_NPBD0PAPAD0@Z
00000016 10049220 ?RSAES_OAEP_GenKeyFiles@CryptoPP32@@YA_NPBD0I0@Z
00000017 100498E0 ?RSAES_OAEP_GenKeyStrings@CryptoPP32@@YA_NPAPAD0IPBD@Z
00000018 1004DDB0 ?RSAES_PKCS_DecryptString2@CryptoPP32@@YA_NPBD0PAPAD


相关文档:

浅谈C#泛型的用处

为什么要使用C#泛型?
为了了解这个问题,我们先看下面的代码,代码省略了一些内容,但功能是实现一个栈,这个栈只能处理int数据类型:
public class Stack
    {
        private int[] m_item;
        public ......

C# 使用PlaySound在移动设备上播放声音

使用 PlaySound 在移动设备上播放声音文件。此代码使用 System.Runtime.InteropServices
调用 Compact Framework 的 CoreDll.DLL 的 PlaySound 方法
关于播放实现:
        //播放标志
        private enum Flags
        {
 &n ......

c# enmu 枚举小结(1)

 
枚举
  枚举类型声明为一组相关的符号常数定义了一个类型名称。枚举用于“多项选择”场合,就是程序运行时从编译时已经设定的固定数目的“选择”中做出决定。
  枚举类型(也称为枚举)为定义一组可以赋给变量的命名整数常量提供了一种有效的方法。例如,假设您必须定义一个变量,该变量 ......

浅析工厂模式(C#)

我以为,在所有模式中,最简单、最常用的就是工厂模式了(包括抽象工厂)。
工厂模式和抽象模式的区别在于,工厂模式是通过参数(一般叫型别码)来动态生成对象,而抽象工厂必须了解上下文才能调用相应的对象。实例代码如下:
一、工厂模式
public class Factory
{
public static object Create(int type)
{ ......

C#清除页面缓存

C#清除页面缓存
    private void SetPageNoCache()
        {
            Response.Buffer = true;
            Response.ExpiresAbsolute = Sy ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号