C++调用C#的dll 语法错误 求高人指点

C#中代码

C++中
#using ".\jiamigou\ScanJiaMi.dll"
using namespace ScanJiaMi;
使用时
JiaMi ^c = gcnew JiaMi();
报错 错误 2 error C2065: “JiaMi”: 未声明的标识符

1个回答

在C++ 项目属性 [配置]-[常规] 中,公共语言运行时支持,一定要选择“公共语言运行时支持”

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C#调用C的dll 请高手指点
//testdll.dllrnrn//这是dll的声明rnstruct Player rnrn char name[256];rn long age;rn;rnEXPORT bool CALLBACK GetPlayerInfo(TCHAR *pPath, Player *pPlayers, int *pCount, char *pGameName);rnrn//这是用C来调用rn#include rn#include "testdll.h"rn#pragma comment(lib, "testdll.lib")rnint main()rnrn Player player[12];rn int count = 0;rn char gameName[256] = 0 ;rn GetPlayerInfo(TEXT("c:\\a"), player, &count, gameName);rn return 0;rnrnrn//请问怎样在C#中调用?
C的前途,求高人指点。
学C也有快2年多了,想继续深造下去,不想朝C#.C++方面发展,想往系统方面学习下去,求高人指点明路
求高人指点 C\C++
char a[] = "abc\0d\0"rnchar * b = "abc\0d\0"rnprintf("%d %d %s\n", strlen(a), sizeof(a), a);rnprintf("%d %d %s\n", strlen(b), sizeof(b), b);rnrn结果是rn3 7rn3 3rnrn求sizeof(a)和sizeof(b)结果的合理解释。
c#调用C的DLL
c#调用C的DLL
c#调用c的dll
小弟目前遇到一个问题,本人的程序是c#开发的,需要调用别人使用c开发的dll,而这dll里面存在一些汇编代码,在我的程序调用到存在汇编操作的dll函数时,程序报错,“内存不能读取或写入,可能是内存以损坏”。rn请各位高手指点一下,如何解决。
c# 调用 c dll
我在c#中调用 c 写的dll动态链接库,弄了好久,总是报“尝试读入或写入受保护的内存”这样的错误,估计是参数类型对应出错了。大家帮忙看下,下面这个动态库中的c语言函数转换成c#的函数,参数该是怎么样的呢?谢谢rnlong WINAPI OpenComPort(long Port, unsigned char *ComAdr, unsigned char * Baud,long *FrmHandle);
用C# 写的DLL 调用问题 请高人指点
我自己编写的DLL test.dll rn代码如下 rnnamespace testrnrn public static int Login(string username, string password)rn rn //业务代码就不贴出来了rn rn public static int sendMessage(string username, string password, string message, string mobile)rn rn //业务代码就不贴出来了rn rnrnrn其中有 Login 和 sendMessage 方法,我自己用C# 开发软件是 Microsoft Visual Studio 2005 直接点引用-添加引用 调用它是没有任何问题。rn但是如果这样 调用的话rn[DllImport("test.dll", EntryPoint = "Login")] rnrnpublic static extern int Login(string username, string password);rnrnprivate void button1_Click(object sender, EventArgs e)rnrn MessageBox.Show(Login(_name,_pass).ToString());rnrn程序就会出现错误,错误提示:rn 无法在 DLL"test.dll"中找到名为"Login"的入口点rnrn请高手指点一下,我应该怎么修改一下,或者是说 C#根本不能写这样的DLL ?
语法错误,求指点。
[code=PHP]/if $history_receivern literal rn$(document).ready(function()rn/*用户地址自动完成*/rn $("#php188_hist_address").change(function()rn var value = $(this).val();rn if(empty(value))return false;rn var opt = id:value;rn $.getJSON(get_recive_adress,opt,function(data)rn if(data.error == 'notmem')rn showNotice("您还没有登陆");rn else if(data.error == 'notid')rn showNotice("您的操作有误");rn else if(data.error == 'notdata')rn showNotice('没有此数据');rn elsern $("#php188_receive_realname").val(data.receive_realname);rn $("#php188_receive_address").val(data.receive_address);rn $("#php188_receive_postno").val(data.receive_postno);rn $("#php188_receive_phone").val(data.receive_phone);rn $("#php188_receive_mobile").val(data.receive_mobile); rn tryrn var data_type = data.receive_date_type.split(' ');rn $("#php188_receive_date").val(data_type[0]);rn if(!isNaN(data_type[0].substr(0,4)))rn $("#php188_receive_date").val('specal');rn $('#specal_date').show();rn $('#specal_date').val(data_type[0]);rn elsern $('#specal_date').hide();rn rn $("#php188_receive_time").val(data_type[1]);rn catch(e)rn var area = data.receive_area;rn $.get(call_url,tag:area,function(d)rn $("#region_all_info").empty().html(d);rn );rn rn );rn );rn ); rn /literal[/code]
c# 反射 调用excel 请高人指点
object hrexcel;rnrnType excelType = Type.GetTypeFromProgID("Excel.Application");rnhrexcel = Activator.CreateInstance(excelType);rnSetObjPeoperty(hrexcel,"Visible","true");rnSetObjPeoperty(hrexcel,"UserControl","true");rnobject workbooks=GetObjPeoperty(hrexcel,"Workbooks");rnobject xBk =CallObjMethod(workbooks,"Add",new object[]true);rnobject excelSheet=GetObjPeopertyWithParam(xBk,"Worksheets",new object[]1);rnobject[] agr2 = new object[2] 1, 1 ;rnobject excelcellcell=GetObjPeopertyWithParam(excelSheet,"Cells",agr2);rnrn为什么最后这个方法一直提示 未知的名称 ?请大家帮忙rn
C# 调用存储过程 语法错误
大家好!rn代码如下:rnrn[code=C#]rnpublic void GetCompany(string companyId)rn rn SqlParameter[] values = new SqlParameter[]rn rn new SqlParameter(PARAM_COMPANY_ID, companyId)rn ;rnrn DataTable dtResult = SQLDBUtil.GetDataSetByProcedure(PRO_GET_WATER_HISTORY, values);rnrn rn[/code]rnrnrn[code=SQL]rnIF EXISTS (SELECT name FROM sysobjects WHERE name = 'proTest' AND type = 'P') rn DROP PROCEDURE proTest rnGOrnrnCREATE PROCEDURE proTestrn @company_Id VARCHAR(2)rnASrnBEGINrn SELECT * FROM Company WHERE company_Id = @company_Id;rnENDrnrnexec proTest '01';rnrn[/code]rnrnrn错误提示: "'proTest' 附近有语法错误。"rn首先,这存储过程是可以执行的.但是用C#调用,就报存储过程名字附近有语法错误.另外,如果C#里不传参数,是没问题的.这是什么问题?请大家指教,谢谢!
C#调用ActiveX dll(呼唤高人)
发生异常异常信息: 被呼叫方(服务器[不是服务器应用程序])不可用并已消失。所有连接均无效。呼叫可能已执行。 (异常来自 HRESULT:0x80010007 (RPC_E_SERVER_DIED))rnrn rn英文错误信息是rnThe callee (server [not server application]) is not available andrndisappeared; all connections are invalid. The call may have executed.rn(Exception from HRESULT: 0x80010007 (RPC_E_SERVER_DIED))
C# 调用C/C++ DLL
[code=c]typedef struct IdcInfo rn char name[30+1]; //rn char sex[1+1]; //'1'男 '2'女 rn char nation[2+1]; //民族 '01'-'57'rn char birth[8+1]; //YYYYMMDDrn char addr[70+1];rn char pid[18+1];rn char issue[30+1]; //发卡机关rn char valid_start[8+1]; //rn char valid_end[8+1]; //rn TIdcInfo;rnrn//读身份证,读取成功后,会在当前目录生成xp.bmp照片文件 // iccdll.dllrnSTDAPI ReadIdcInfo(int ReaderHandle, TIdcInfo *pIdcInfo);rnrn[/code]rnrnrn求C#中该如何调用,谢谢!
C#调用C语言的DLL
C#调用C语言实现的DLL时,出现CoTaskMemFree(IntPtr ptr ) 的错误,查了一下,感觉是参数没有对应上,哪位大侠帮我看看是哪里的问题好吗,跪谢~rnrnC语言被调用代码:rntest.dllrn__declspec(dllexport) char* fun(DWORD mode,const char* password);rnchar* fun( DWORD mode, const char* password);rnrnC#调用侧代码:rn static String code;rn [DllImport("test.dll", CharSet = CharSet.Ansi)]rn public static extern String fun(int mode, String password);rnrn static void Main(string[] args)rn rn String s = "123";rn code = obl_crypto_hash(5, s);rn
C#调用C编写dll
[DllImport("P230_DLL_VC.DLL")]rnpublic static unsafe extern int RpcClose();rnrn调用 int a=RpcClose();rn出错:无法在 DLL P230_DLL_VC.DLL 中找到名为 RpcClose 的入口点。rn请教一下如何解决。rn谢谢!
c#调用c语言Dll
程序实现了C语言生成动态链接库,以及C#的调用方法
c# 调用c动态dll
[b][color=#FF0000]请问下面调用正确吗?rn为什么我的程序调用后还是出现SSL初始化错误rnSSLLib.dllrn放在了bin下[/color][/b]rnrn[code=C#]rnint OPENSSL_init(intmode)rnrnrn[/code]rnrnrnrnrn[code=C#][DllImport("SSLLib.dll",CallingConvention=CallingConvention.Cdecl,EntryPoint="OPENSSL_init")]]rnpublic static extern int OPENSSL_init(int mode);rnrnrnrn函数调用rnpublic void test()rnrn //为什么这里初始化会出错?rn int i= OPENSSL_init(0);rnrnrn[/code]rnrnrnrn[color=#FF0000]1楼 bdmh回复:是什么调用约定啊,stdcall还是cdecl,c默认是cdeclrnrnrnrn 答: 是 Cdecl.. 急死我了。 应该本地可以调用阿 为什么会这样 。 1点多就要测试了。rnrnrn2楼 evilant回复:SSL初始化错误,是不是找不到SSLib.dll?rnrnrn 答:rn SSLLib.dll放在程序bin->DeBug下了!rnrn3楼 guliang21 回复 :放到system32下试试rnrn 答:放了 。还是一样rnrn4楼 lizhibin11 大侠:回复:CallingConvention=CallingConvention.Cdecl把这个去掉rn 答: 去掉还是一样rnrn5楼 isjoe回复:是web项目吗?rn 答: winfrom[/color]rnrnrnrn
【C#】调用C语言生成的dll
C#调用C语言生成的dll using System; using System.Runtime.InteropServices; //与导入dll有关的命名空间 using System.Windows.Forms; class Example { //[导入dll,dll与exe在同一个文件夹下]导入dll中getCpuID1函数 [DllImport("CPUID32DLL.dll...
求救: c#调用 c的dll
c#调用 c的dllrn有两个传出参数 char* password,char* corp_idrnrndll内部定义rnunsigned long user_num;rn.....rnsprintf(corp_id,"%06ld",user_num);rnrnunsigned char cur_word,chk_word,pwd_word[17] = ""rn.....rnsprintf(password,"%s",pwd_word);rnrnrn我在c#中用StringBuilder,password得不到值,corp_id得出的值是正确的,是什么原因啊???rn
C#调用c的dll问题
函数原型:int WINAPI rf_anticoll(unsigned short icdev, rn unsigned char bcnt,rn unsigned char *pSnr,rn unsigned char *pLen)rn参数:icdev:[IN] 通讯设备标识符rn bcnt: [IN] 取值4rn pSnr: [OUT]返回的卡序列号rn pLen: [OUT]返回序列号的长度rn返回:成功返回0rn我在c#中应如何定义入口参数?rnpublic static extern int rf_anticoll(int dev, byte bcnt, out string pSnr, out int len)rn这个不行。报错:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
C#调用C代码DLL
首先我们新建一个C语言的WIN32项目 选择项目类型为DLL库 在新建的项目中我们添加Ccode.h,Ccode.cpp两个文件 Code.h extern "C" __declspec(dllexport) int Minus(int a, int b); extern "C" __declspec(dllexport) int Add(int a, int b); Cc...
c#初学,调用c的dll
c的头文件rnextern "C" void _export _stdcall get_one_yc(int fac, int yc_dot, float *yc_value);rnrnc#调用我这样写rn public class DllTestrn rn [DllImport("BaseDll.dll")]rn private extern static void get_one_yc(int fac, int yc_dot, float *yc_value);rn rnrn提示“指针和和固定大小缓冲区只能在不安全的上下文中使用”,我这样写对吗,要怎么改,之后要如何用这个函数,帮忙写写吧,多谢了
C#调用C Dll的问题
在C#中调用C写的Dll,rn函数原型为 void GetPic(char * szCode, BYTE * pPicture)rnrn用C#建个窗口应用程序rnrn [DllImport("PictureGenerator.dll", EntryPoint = "GetPic")]rn static extern void GetPic(string szCode, byte[] pPicture);rnrnrn private void Form1_Load(object sender, EventArgs e)rn rn rn Byte[] pPic = new Byte[9000];rn GetPic("test", pPic);rn rnrn这样是可以调用的。rnrn但是,同样的代码,放在WEB中就不行了。在运行到GetPic时就会出错。说是 rnNullReferenceException: 未将对象引用设置到对象的实例rn这是为什么啊,窗口程序的与WEB有什么不同么。
C#调用C DLL异常
最近在开发过程中需要使用C#调用C写的DLL,但在调用过程中遇到这个问题:“尝试读取或写入受保护的内存 这通常指示其它内存已损坏”,出现错误的地方可能为C#定义的结构体与C定义的结构体转换错误。详细如下:rn1.引用外部C的DLL:rn[code=csharp][DllImport(@"C:\Users\Administrator\Documents\visual studio 2010\Projects\CSQLDLL\Debug\CSQLDLL.dll", EntryPoint = "CDBWriteFunc")]rn public static extern int CDBWriteFunc(ref DB_INFO_CTL_TBL dbinfo, [In, Out] USR_INFO_TBL []usrinfo,int count);[/code]rn2.C#中结构体定义:rn[code=csharp][StructLayout(LayoutKind.Sequential)]rn public struct DB_INFO_CTL_TBLrn rn [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]rn public string byDBName; // DB Namern [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]rn public string byUsrName; // DB User Namern [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]rn public string byIPAddr; // IPrn [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]rn public string byDBPwd; // Passwordrn ;rn [StructLayout(LayoutKind.Sequential)]rn public struct USR_INFO_TBLrn rn [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]rn public string byName;rn [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]rn public string byAge; rn ;[/code]rn3.C中的函数声明:rn[code=c]__declspec(dllexport) INT __stdcall CDBWriteFunc( DB_INFO_CTL_TBL *dbinfo, USR_INFO_TBL *usrinfotbl,INT count );[/code]rn4.C中的结构体定义:rn[code=c]typedef structrnrn BYTE byDBName[20]; // DB Namern BYTE byUsrName[20]; // DB User Namern BYTE byIPAddr[20]; // IPrn BYTE byDBPwd[20]; // PasswordrnDB_INFO_CTL_TBL;rnrntypedef structrnrn BYTE byName[20]; rn BYTE byAge[20];rnUSR_INFO_TBL;[/code]rnrn抛出“尝试读取或写入受保护的内存 这通常指示其它内存已损坏”的异常,请问大师们这为毛???
C#调用C写的dll
我的步骤是这样的,大家帮忙看看。rn1。把c写的dll拷贝到c#工程的bin的debug下面。rn2。c的头文件如下rnextern "C" rnAMI_UTIL_API long AMI_UTIL_API_CALL getPropertyName(const char* propertyName1, char* propertyName2, int propertyNameLength);rnrn所以,在c#的代码里面,如下rn[DllImport("AmiUtil.dll", EntryPoint = "getPropertyName", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.StdCall)]rnprivate static extern long getPropertyName(string propertyName1, string propertyName2, int propertyNameLength);rn3。调用的时候,我写成如下rnstring str1, str2;rnnPropertyNameLength = 0;rngetPropertyName(str1, str2, nPropertyNameLength))rnrnrn正确的步骤和写法应该是怎么样的?
C#调用C DLL文件
这是我调用的 [DllImport("Zhuzhan.dll", EntryPoint = "IdentityAuthentication", CharSet = CharSet.Ansi)]rn static extern int IdentityAuthentication(string Div,byte[] RandAndEndata);rn他原始提供的是IdentityAuthentication(char* Div,char* RandAndEndata);rn 不过经常报错rnrn运行时遇到了错误。此错误的地址为 0x62ed646b,在线程 0xf9c 上。错误代码为 0xc0000005。此错误可能是 CLR 中的 bug,或者是用户代码的不安全部分或不可验证部分中的 bug。此 bug 的常见来源包括用户对 COM-interop 或 PInvoke 的封送处理错误,这些错误可能会损坏堆栈。rnrn
c#怎么调用C的DLL?
有以下疑惑:rn1、c++的dll和c的dll有什么区别?rn2、c#调用c的dll的时候有什么不同?rnrn有人说,c#调用c的dll还要中间加一层c++的封装?rnrn另,我用vc6写以下的代码,有什么错?rnrn[code=C/C++]rn//dll.cpprn#include "Dll.h " rnint add(int a,int b) rn rnreturn a+b; rn rnint subtract(int a,int b) rn rnreturn a-b; rn rnrn[/code]rn[code=C/C++]rn//dll.hrnextern "C " _declspec(dllimport) int add(int a,int b); rnextern "C " _declspec(dllimport) int subtract(int a,int b); rn[/code]
C# 调用 C 写的DLL
'int __stdcall GetBasicInfo(HANDLE icdev,unsigned long &CardSN); rnPrivate Declare Function GetBasicInfo Lib "CMCC.dll" (ByVal icdev,ByRef CardSN&) As Longrn rn上面是 VB 6.0 中调用 C DLL的代码 rn------------------------------------------------------------------------------------ rn那么 C# 遇到 &CardSN 该怎么写呢,请教,不胜感激 rn
求各位高人指点
各位高手能不能介绍本经典的关于数据库设计方面的书,万分感谢!
急求高人指点!!
我刚学做网页,遇到个问题,想请教高人,能不能在程序里把Excel打开?我想打开一个Excel模板,然后将从数据库查询来的数据填进去,这个操作用c#能实现吗?望高人指教!!
菜鸟求高人指点
我在运行一个可执行文件时,弹出一个对话框:rnClass TDBEdit not found 我怎么才能成功。是不是我安装的bcb有问题。rn望高人指点
求高人指点
初学JAVA,有一个这样的逻辑一直编得不好,求指导求参考rnrn 假设有m个人,共同完成n项工作,(n>m≥2)。每个人可以干任何一件工作,但效率不同,任意时刻每个人只能干一件工作,每项工作只能由一人独立完成。rn 如果这m个人任选一项工作同时开始干,每个人干完一件工作后,立即选一项还没有人干过的工作接着干,直到所有n项工作全部完成。从开始工作到最后一项工作完成的时间称为总完成时间,简称总时间,记为T。rn 为使总时间T尽量小,请对以下三种情况,分别确定每个人应干哪几项工作?顺序如何?并求出T。rn对一般情况进行讨论 rnrn1.贪婪算法(计算机模拟)rn 向量Y= (b1,b2,…,bn),rn 其中bj=mina1j,a2j,…,amj,称Y为各项工作的最短时间向量。称向量Zi=Xi–Y为第i人对Y的误差向量。rn算法步骤:rn1)令t=0; rn2)对当前无工作做的i,任选Zi中未做的一个最小分量所对应的工作干;rn3)令t为当前所有在干的工作中最先结束的结束时间;rn4)重复2),3)直到所有工作干完为止
大整数加法!!!求高人指点···
#includern#includernusing namespace std;rnconst int L=241;rnconst int NUMSIZE=L*sizeof(int);rnvoid StrtoNum(int a[],const string &s);rnvoid OutputNum( const int a[] );rnvoid Add( int c[], const int a[], const int b[] );rnint main()rnrn int a[L],b[L],c[L];rn string as,bs,cs;rn cin>>as>>bs;rn StrtoNum( a,as);rn StrtoNum(b,bs);rn Add(c,a,b);rn OutputNum(c);rnrnrnrnrnvoid StrtoNum( int a[], const string &s )rnrn memset( a, 0, NUMSIZE );rn a[0] = s.length();rn for( int i=a[0]; i>0; --i )rn a[i] = s[a[0]-i] - '0';rn [color=#FF0000] if( a[0] == 0 ) a[0] = 1;rn while( (a[a[0]]==0) && (a[0]>1) ) --a[0];[/color] return;rnrnvoid OutputNum( const int a[] )rnrn for( int i=a[0]; i>0; --i )rn cout < b[0] ? a[0] : b[0] );rn for( i=1; i<=t[0]; ++i )rn t[i] += a[i] + b[i];rn t[i+1] += t[i] / 10;rn t[i] %= 10;rn rn[color=#FF0000] if( t[t[0]+1] ) ++t[0];[/color]rn memcpy( c, t, NUMSIZE );rn return;rnrnrn红色标记的地方不怎么懂·····rn为什么要那样?rn我注释后运行好像也能得到正确结果···rn还有这种算法行不?????又没更好的????rn本人大一新生····菜鸟一个···望牛人指点一二···rnrn
求高人指点!!!!急!!!!!!
rnrnrn rn rnrn rn请问以上代码哪写错了?????
求高人指点!!
我们公司是用的局域网宽带拔号;rn服务器访问INTERNET没有任何问题!rn但下面的工作站,有些网站怎么都访问不了,比如说baidu.com,还有一些其它的网站.rn但是能ping得通!郁闷!!rn服务器是XP系统,工作站98,2000,XP都有!rn求高人指点!rn
怎么学好C#?急求高人指点!
昨天面试的时候对我打击不小,他们问我的很多技术问题都没回答上来,我想尽快学好C#,现在我的C#语言理论基础还可以,但离开发真正的软件还差很多,我想在实际实际开发的能力上有大的提升,请问有什么好的方法吗,有没有关于C#源码的网站,开发经验和书籍等等,现在急需各位的帮助!!!
c# 水晶报表 ,求高人指点....谢谢!!
高人!您好!!rn请问水晶报表如何做到分组打印呢????rn比如说我要打印一个教师 教的所有班级信息..?rnrn我现在的做法是:rn查询出该教师 教了哪些班级(如查出来1班,3班,4班),rn 选择他教的班级名称(选一个1班),点打印....rn再选择他教的班级名称(选一个3班),点打印....rn.....rnrnrn能不能做到 选择一个教师 点打印rn就自动把他手下的班级信息(1,3,4班) 分组打印出来呢?rnrn还有,我不要汇总 我要分班级(1班在一页,3班在一页,4班在一页)rnrn谢谢各位!
新手初学C#,求高人指点 `
路过的前辈们,给后辈们留下一点经验吧。rnrn怎么入手学习,怎么才能学得比较快,怎么能够学懂学通。。。。
加密算法,求高人指点
请问哪位能看出这是什么加密算法产生的啊?rn我只知道他们应该是数字,而且肯定不是MD5,因为是需要解码的。rnuH/pfi8/ucs+XZKiJRXHEw==rnW1J1Nn8bwxY=rnzZUTyapBUlw=rnPt/aEybt1ys=rnUzVdjEBVXg4=rn
求高人指点下 设计思想
我 现在 需要 写 个存储过程 rnrn比如 这个 存储过程叫 new_mainrnrn里边调用 这用个 存储过程 new_1 new_2 new_3 new_4 new_5 new_6rnrn[color=#FF0000]现在 问题 出现了 让我在 前台 调用这个 new_main 存储过程的时候 如果 new_main 里的某个rnrn出现异常后如何重新执行先前的代码[/color]rnrn我应该 怎么去设计 呢 rnrn求高人指点下rn比如 new_mainrnrnbeginrn new_1;rn new_2;rn new_3;rn new_4; rn new_5; rn new_6;rnrnexception rnrn when others thenrn IF SQLCODE = xxxx THENrn --做一些处理使得异常不再抛出rn --然后重新执行,请问如何处理?(注:不拷贝以上代码,因为太多,只能返回去重新执行)rn elsern raise;rn end if;rnend;rn
求高人指点……
我用双缓冲画图,但一闪而过,rnvoid CMy0823_1Dlg::OnPaint() rn rn rn CPaintDC dc(this);rn RECT ClientRect;rn ::GetClientRect(m_hWnd,&ClientRect);rn UINT ClientWidth=ClientRect.right-ClientRect.left;rn UINT ClientHeight=ClientRect.bottom-ClientRect.top;rnrn HDC hScrDC= dc.m_hDC ; //创建屏幕DCrn HDC hMemDC=CreateCompatibleDC(hScrDC); //创建内存DCrn HBITMAP bitmap=::CreateCompatibleBitmap(hScrDC,ClientWidth,ClientHeight);//创建兼容位图内存块,存放图片数据rn HBITMAP OldBitmap=(HBITMAP)::SelectObject(hMemDC,bitmap); //内存hMemDC与位图内存块相关联rnrn //先画整个客户区的背景rn ::FillRect(hMemDC,&ClientRect,(HBRUSH)GetStockObject(WHITE_BRUSH)); rnrn //填充颜色矩形rn HBRUSH brush=::CreateSolidBrush(RGB(255,123,216));rn RECT rect=0,0,1000,1000;rn ::FillRect(hMemDC,&rect,brush);rn ::DeleteObject(brush);rnrn //画空矩形2rn ::SelectObject(hMemDC,(HBRUSH)GetStockObject(NULL_BRUSH));rn ::Rectangle(hMemDC,10,10,1000,1000);rn/* for(int j=0;j<1;j++)rn rn MemDC.MoveTo(gline[j-1]/1,grow[j-1]/100); rn MemDC.LineTo(gline[j]/100,grow[j]/100);rn */rnMemDC.MoveTo(100,100); rnMemDC.LineTo(200,200);//编译可以通过,可是点击感叹号就说dubug ASSERTion FAILD什么的rn// MyDraw();//自己定义的画图函数,用他图花了,一闪而过,就没有了rnrn BitBlt(hScrDC,0,0,ClientWidth,ClientHeight,hMemDC,0,0,SRCCOPY); rnrn ::SelectObject(hMemDC,OldBitmap); //bitmap指向的内存块再也没有和hMemDC挂钩,之后你可以使用bitmap所指向的图片数据了rn ::DeleteObject(bitmap); //释放位图所占Memoryrn ::DeleteDC(hMemDC) ; //删除内存DCrn// ::ReleaseDC(m_hWnd,hScrDC) ; //释放屏幕DCrnrnrnrn if (IsIconic())rn rn CPaintDC dc(this); // device context for paintingrnrn SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);rnrn // Center icon in client rectanglern int cxIcon = GetSystemMetrics(SM_CXICON);rn int cyIcon = GetSystemMetrics(SM_CYICON);rn CRect rect;rn GetClientRect(&rect);rn int x = (rect.Width() - cxIcon + 1) / 2;rn int y = (rect.Height() - cyIcon + 1) / 2;rnrn // Draw the iconrn dc.DrawIcon(x, y, m_hIcon); rn rn elsern rnrn void CMy0823_1Dlg::OnPaint() ;rnrn rnrnrn//刚接触c++,不是很了解,求高人指点
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池