c语言puse函数 c语言purchar

MFC中如何使用别人DLL的回调函数(回调函数使用C语言声明)使用 LoadLibrary 载入动态链接库
取得dll中提供的函数地址, Func_Gato_Keypad_SetUploadMsgCallBack
调用该函数
动态链接库用完使用FreeLibrary卸载掉
int my_msg_callback(char *ipAddr, GATO_MSG_TYPE MsgType, GATO_UPLOAD_MSG_T *UploadMsg, void *pUserdata)
{
print("msg");
}
void main()
{
Func_Gato_Keypad_SetUploadMsgCallBack fnSetCallback;
HINSTANCE hDll = LoadLibrary("dllpathname");
if(hDll)
{
fnSetCallback= (Func_Gato_Keypad_SetUploadMsgCallBack )GetProcAddress( hDll, "Func_Gato_Keypad_SetUploadMsgCallBack" );
}
if(fnSetCallback)
fnSetCallback(iKeypadID, my_msg_callback, pUseData);
if(hDll)
FreeLibrary(hDll);
}
visual studio 2010 的简单用法加#includestdlib和system("PUSE");
形式如下
#includestdlib
intmain(void)
{
system("PUSE");
}
步进电机驱动程序C语言步进电机控制程序(c语言+51单片机)
#includereg51.h
#define uintunsigned int
#define uchar unsigned char
#define ms *77
// f = 12 M
#define LEDLen 4
#define Dj_star() {IE=0x81; pri_dj=0; }
#define Dj_stop() {IE=0x00; pri_dj=1; P1=0xff; shache="0"; delay(800ms); delay(800ms);delay(400ms); shache = 1; }
#define Chilun_Num 8
/* 齿轮数 8 个*/
#define set_display_num() { LEDBuf[0] = tmp / 1000;LEDBuf[1] = tmp / 100 % 10;\
LEDBuf[2] = tmp / 10 % 10;LEDBuf[3] = tmp % 10;}
uchar LEDBuf[LEDLen] = {0,0,0,0};
voidread_num ();/* 读播码盘 到 set_round_num* 8 */
voiddisplay();
voiddelay(uintdelay_time) { uinti; for (i=0; idelay_time ; i++) ; }
voidrun ();
voidfx_run();
uintround_num= 0;/* 记录已转的 齿轮数 , 中断1次 加 1*/
uintset_round_num = 0;/* 播码盘设置 圈数 */
uintset_pwm_width = 0;/* 播码盘设置 步进电机 正向速度 */
bitone_round_flg = 0;
sbitled_1000= P0^7;//use for display
sbitled_100= P0^6;//use for display
sbitled_10= P0^5;//use for display
sbitled_1= P0^4;//use for display
sbitkey_start= P3^0;
sbitkey_puse= P3^0;
sbitkey_clear= P3^1;
/*P3^2 接齿轮传感器 中断*/
sbitbujin_zx_stop = P3^3;/* 接步进电机 ,正向到位传感器 ,为 0 停机 */
sbitbujin_fx_stop = P3^4;/* 接步进电机 ,反向到位传感器 ,为 0 停机 */
sbitshache= P3^5;/* 接刹车控制继电器0 电位有效 */
sbitpri_dj= P3^6;/* 接主电机控制继电器 0 电位有效 */
void main(){
TCON = 0x01;
display();
while(1) {
IE="0x00";
round_num = 0;
display();
if ( bujin_fx_stop ) fx_run();
while ( key_start );
delay ( 8ms );
if(!key_start){
read_num();
//set_round_num= 8;
while ( !key_start );
run ();
fx_run();
}
}
}
void run () {
#define Delay_time180
/* 转一圈 50 次循环 , 每循环 4 步 ,50 * 4 = 200  ,  200 * 1 。8 = 360 */
uchar i ;
P1 = 0xff;
set_pwm_width = 15 + set_pwm_width / 10;
while ( 1 ) {
while( !shache | !key_start );
Dj_star();
for ( i="0" ; bujin_zx_stop!pri_dj;i++ ){
P1 =0xf9;
delay ( Delay_time);// bujin_zx_stop = P3^3;
P1 =0xfc;// bujin_fx_stop = P3^4;
delay ( Delay_time);// key_puse= P3^0;
P1 =0xf6;// key_clear= P3^1;
delay ( Delay_time);// shache= P3^5;
P1 =0xf3;// pri_dj= P3^6;
delay ( Delay_time );
if( i == set_pwm_width ) { P1 = 0xff; i = 0; one_round_flg = 0; while ( !one_round_flgkey_puse );}
if(!key_puse) { delay(4ms);if(!key_puse) break;}
}
P1 = 0xff;
if ( pri_dj )break;
if ( !key_puse ) {
delay ( 8ms );
if ( !key_puse) {
Dj_stop();

推荐阅读