zoukankan      html  css  js  c++  java
  • VC6 DLL exports

    //filename : Dll1.h
    #ifndef _DLL1_H_ 
    #define  _DLL1_H_
    
    
    #ifdef DLL1_API
    #else
    #define DLL1_API extern "C" _declspec(dllimport)
    #endif // DLL1_API
    
    DLL1_API int _stdcall add(int a,int b);
    DLL1_API int _stdcall substract(int a,int b);
    
    
    #endif
    

      

    //filename:Dll1.cpp
    #define DLL1_API extern "C" _declspec(dllexport)
    #include "Dll1.h"
    
    int _stdcall add(int a,int b)
    {
    	return a+b;
    }
    
    int _stdcall substract(int a,int b)
    {
    	return a-b;
    }
    

      

    //MyPoint.h
    
    
    // MyPoint.h: interface for the MyPoint class.
    //
    //////////////////////////////////////////////////////////////////////
    
    
    #include <windows.h>
    #include <stdio.h>
    
    #if !defined(AFX_MYPOINT_H__0FB85FE1_A0BB_4FF3_B780_79E133776F44__INCLUDED_)
    #define AFX_MYPOINT_H__0FB85FE1_A0BB_4FF3_B780_79E133776F44__INCLUDED_
    
    #if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000
    
    #ifdef DLL2_API
    #else
    #define DLL2_API _declspec(dllimport)
    #endif // DLL2_API
    
    class DLL2_API MyPoint  
    {
    public:
    	void output();	
    	MyPoint();
    	virtual ~MyPoint();
    	
    public:	
    	int y;
    	int x;
    };
    
    #endif // !defined(AFX_MYPOINT_H__0FB85FE1_A0BB_4FF3_B780_79E133776F44__INCLUDED_)
    

      

    // MyPoint.cpp: implementation of the MyPoint class.
    //
    //////////////////////////////////////////////////////////////////////
    
    #define DLL2_API _declspec(dllexport)
    #include "MyPoint.h"
    
    //////////////////////////////////////////////////////////////////////
    // Construction/Destruction
    //////////////////////////////////////////////////////////////////////
    
    MyPoint::MyPoint()
    {
    	x=0;
    	y=0;
    }
    
    MyPoint::~MyPoint()
    { 
    
    }
    
    void MyPoint::output()
    {
    	HWND hWnd = GetForegroundWindow();
    	HDC hdc = GetDC(hWnd);
    	char buf[40];
    	memset(buf,0,40);
    	sprintf(buf,"x=%d,y=%d",x,y);
    	TextOut(hdc,0,0,buf,strlen(buf));
    	ReleaseDC(hWnd,hdc);
    }
    

      

     Dll1.def

    LIBRARY Dll1
    
    EXPORTS
    
    add
    substract
    

      

    void CDllTestDlg::OnBtnLoadLibrary() 
    {
    	HMODULE hModule = LoadLibrary("Dll1.dll");
    	if(!hModule)
    	{
    		MessageBox("未能加载DLL");
    		return;
    	}
    	typedef  int  (_stdcall *ADDPROC) (int,int);
    	ADDPROC add=(ADDPROC) GetProcAddress(hModule,"substract");
    	if(!add){
    		MessageBox("未找到指定函数");
    		return;
    	}
    	int result=add(1,22);
    	CString str;
    	str.Format("%d",result);
    	MessageBox(str);
    }
    

      

  • 相关阅读:
    线性筛素数
    m个苹果放入n个盘子问题
    幸运的袋子
    [HNOI2013]消毒
    [SDOI2016]数字配对
    [SCOI2015]小凸玩矩阵
    [JLOI2008]将军
    [HEOI2016/TJOI2016]游戏
    [洛谷4329/COCI2006-2007#1] Bond
    [BZOJ1324]Exca王者之剑
  • 原文地址:https://www.cnblogs.com/wucg/p/2425569.html
Copyright © 2011-2022 走看看