• c++做的供其他程序使用的动态链接库(袁振德)


    // pb.cpp : Defines the initialization routines for the DLL.
    //

    #include "stdafx.h"
    #include <string.h>
    #include "pb.h"

    #ifdef _DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[] = __FILE__;
    #endif

    //
    // Note!
    //
    //  If this DLL is dynamically linked against the MFC
    //  DLLs, any functions exported from this DLL which
    //  call into MFC must have the AFX_MANAGE_STATE macro
    //  added at the very beginning of the function.
    //
    //  For example:
    //
    //  extern "C" BOOL PASCAL EXPORT ExportedFunction()
    //  {
    //   AFX_MANAGE_STATE(AfxGetStaticModuleState());
    //   // normal function body here
    //  }
    //
    //  It is very important that this macro appear in each
    //  function, prior to any calls into MFC.  This means that
    //  it must appear as the first statement within the
    //  function, even before any object variable declarations
    //  as their constructors may generate calls into the MFC
    //  DLL.
    //
    //  Please see MFC Technical Notes 33 and 58 for additional
    //  details.
    //

    /////////////////////////////////////////////////////////////////////////////
    // CPbApp

    BEGIN_MESSAGE_MAP(CPbApp, CWinApp)
     //{{AFX_MSG_MAP(CPbApp)
      // NOTE - the ClassWizard will add and remove mapping macros here.
      //    DO NOT EDIT what you see in these blocks of generated code!
     //}}AFX_MSG_MAP
    END_MESSAGE_MAP()

    /////////////////////////////////////////////////////////////////////////////
    // CPbApp construction

    CPbApp::CPbApp()
    {
     // TODO: add construction code here,
     // Place all significant initialization in InitInstance
    }

    /////////////////////////////////////////////////////////////////////////////
    // The one and only CPbApp object

    CPbApp theApp;
    char* p = NULL;

    extern "C" _declspec(dllexport)
    char*   _stdcall  output_number(char* aa)
    {

     CString s = aa;
     s += "abcd";
     
     int nlen = s.GetLength();
     if(p != NULL)
     {
      delete[] p;
      p = NULL;
     }
     p = new char[nlen + 1];
     
     p[nlen] = 0;
     
     memcpy(p,s.GetBuffer(0),s.GetLength());
     
     
     
     return p;

     
    }
    extern "C" _declspec(dllexport)
    char* _stdcall   deleteaa()
    {
     if(p != NULL)
     {
      delete[] p;
      p = NULL;
     }
     char* a = "0";
     return a;
    }


    //CString s = a;
    //s += "abcd";
    //
    //int nlen = s.GetLength();
    //char* p = new char[nlen + 1];
    //
    //p[nlen] = 0;
    //
    //memcpy(p,s.GetBuffer(0),s.GetLength());
    //
    //
    //
    //return p;


     

  • 相关阅读:
    基于mini2440的boa服务器移植
    主机+虚拟机ubuntu+mini2440开发板互相ping通
    poj3133 插头dp
    2015 北京网络赛 E Border Length hihoCoder 1231 树状数组 (2015-11-05 09:30)
    2015 北京网络赛 C Protecting Homeless Cats hihoCoder 1229 树状数组
    acm 2015北京网络赛 F Couple Trees 主席树+树链剖分
    hdu4777 树状数组
    hdu5517 二维树状数组
    Codeforces Round #327 (Div. 1) D. Top Secret Task
    2014-2015 ACM-ICPC, Asia Xian Regional Contest GThe Problem to Slow Down You
  • 原文地址:https://www.cnblogs.com/zhwl/p/2784685.html
Copyright © 2020-2023  润新知