⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 showparam.cpp

📁 windows mobile 开发实例wi ndows mobile 开发实例
💻 CPP
字号:
// ShowParam.cpp : Display various .NET data types both
// by reference and by value.
//
// File Location: \YaoDurant\CPP\PlatformInvoke\ShowParam
//
// Code from _Programming the .NET Compact Framework with C#_
// (c) Copyright 2002-2003 Paul Yao and David Durant. 
// All rights reserved.

#include "stdafx.h"
#include "showparam.h"

LPWSTR pLibName = L"ShowParam - Win32 DLL";

BOOL APIENTRY 
DllMain( HANDLE hModule, 
         DWORD  ul_reason_for_call, 
         LPVOID lpReserved)
{
    return TRUE;
}

//
// ShowBooleanByVal - Display Boolean value passed by value.
//
extern "C" __declspec ( dllexport ) 
void WINAPI ShowBooleanByVal(BYTE val)
{
    WCHAR wch[128];
    wsprintf(wch, L"BoolByVal = %d", val);
    MessageBoxW(NULL, wch, pLibName, 0);
}

//
// ShowBooleanByRef - Display Boolean value passed by reference.
//
extern "C" __declspec ( dllexport ) 
void WINAPI ShowBooleanByRef(BYTE * val)
{
    WCHAR wch[128];
    wsprintf(wch, L"BoolByRef = %d", *val);
    MessageBoxW(NULL, wch, pLibName, 0);
}

//
// ShowByteByVal - Display Byte value passed by value.
//
extern "C" __declspec ( dllexport ) 
void WINAPI ShowByteByVal(BYTE val)
{
    WCHAR wch[128];
    wsprintf(wch, L"ShowByteByVal = %d", val);
    MessageBoxW(NULL, wch, pLibName, 0);
}

//
// ShowByteByRef - Display Byte value passed by reference.
//
extern "C" __declspec ( dllexport )
void WINAPI ShowByteByRef(BYTE * val)
{
    WCHAR wch[128];
    wsprintf(wch, L"ShowByteByRef = %d", *val);
    MessageBoxW(NULL, wch, pLibName, 0);
}

//
// ShowSByteByVal - Display SByte value passed by value.
//
extern "C" __declspec ( dllexport ) 
void WINAPI ShowSByteByVal(CHAR val)
{
    WCHAR wch[128];
    wsprintf(wch, L"ShowSByteByVal = %d", val);
    MessageBoxW(NULL, wch, pLibName, 0);
}

//
// ShowSByteByRef - Display SByte value passed by reference.
//
extern "C"  __declspec ( dllexport ) 
void WINAPI ShowSByteByRef(CHAR * val)
{
    WCHAR wch[128];
    wsprintf(wch, L"ShowSByteByRef = %d", *val);
    MessageBoxW(NULL, wch, pLibName, 0);
}

//
// ShowInt16ByVal - Display Int16 value passed by value.
//
extern "C"  __declspec ( dllexport ) 
void WINAPI ShowInt16ByVal(SHORT val)
{
    WCHAR wch[128];
    wsprintf(wch, L"ShowInt16ByVal = %d", val);
    MessageBoxW(NULL, wch, pLibName, 0);
}

//
// ShowInt16ByRef - Display Int16 value passed by reference.
//
extern "C" __declspec ( dllexport ) 
void WINAPI ShowInt16ByRef(SHORT * val)
{
    WCHAR wch[128];
    wsprintf(wch, L"ShowInt16ByRef = %d", *val);
    MessageBoxW(NULL, wch, pLibName, 0);
}

//
// ShowUInt16ByVal - Display UInt16 value passed by value.
//
extern "C" __declspec ( dllexport ) 
void WINAPI ShowUInt16ByVal(USHORT val)
{
    WCHAR wch[128];
    wsprintf(wch, L"ShowUInt16ByVal = %d", val);
    MessageBoxW(NULL, wch, pLibName, 0);
}

//
// ShowUInt16ByRef - Display UInt16 value passed by reference.
//
extern "C" __declspec ( dllexport ) 
void WINAPI ShowUInt16ByRef(USHORT * val)
{
    WCHAR wch[128];
    wsprintf(wch, L"ShowUInt16ByRef = %d", *val);
    MessageBoxW(NULL, wch, pLibName, 0);
}


//
// ShowInt32ByVal - Display Int32 value passed by value.
//
extern "C"  __declspec ( dllexport ) 
void WINAPI ShowInt32ByVal(LONG val)
{
    WCHAR wch[128];
    wsprintf(wch, L"ShowInt32ByVal = %d", val);
    MessageBoxW(NULL, wch, pLibName, 0);
}

//
// ShowInt32ByRef - Display Int32 value passed by reference.
//
extern "C" __declspec ( dllexport ) 
void WINAPI ShowInt32ByRef(LONG * val)
{
    WCHAR wch[128];
    wsprintf(wch, L"ShowInt32ByRef = %d", *val);
    MessageBoxW(NULL, wch, pLibName, 0);
}

//
// ShowUInt32ByVal - Display UInt32 value passed by value.
//
extern "C" __declspec ( dllexport ) 
void WINAPI ShowUInt32ByVal(ULONG val)
{
    WCHAR wch[128];
    wsprintf(wch, L"ShowUInt32ByVal = %d", val);
    MessageBoxW(NULL, wch, pLibName, 0);
}

//
// ShowUInt32ByRef - Display UInt32 value passed by reference.
//
extern "C" __declspec ( dllexport ) 
void WINAPI ShowUInt32ByRef(ULONG * val)
{
    WCHAR wch[128];
    wsprintf(wch, L"ShowUInt32ByRef = %d", *val);
    MessageBoxW(NULL, wch, pLibName, 0);
}

//
// ShowInt64ByVal - Display Int64 value passed by value.
//
extern "C"  __declspec ( dllexport ) 
void WINAPI ShowInt64ByVal(__int64 val)
{
    WCHAR wch[128];
    wsprintf(wch, L"ShowInt64ByVal = %d", val);
    MessageBoxW(NULL, wch, pLibName, 0);
}

//
// ShowInt64ByRef - Display Int64 value passed by reference.
//
extern "C" __declspec ( dllexport ) 
void WINAPI ShowInt64ByRef(__int64 * val)
{
    WCHAR wch[128];
    wsprintf(wch, L"ShowInt64ByRef = %d", *val);
    MessageBoxW(NULL, wch, pLibName, 0);
}

//
// ShowUInt64ByVal - Display UInt64 value passed by value.
//
extern "C" __declspec ( dllexport ) 
void WINAPI ShowUInt64ByVal(unsigned __int64 val)
{
    WCHAR wch[128];
    wsprintf(wch, L"ShowUInt64ByVal = %d", val);
    MessageBoxW(NULL, wch, pLibName, 0);
}

//
// ShowUInt64ByRef - Display UInt64 value passed by reference.
//
extern "C" __declspec ( dllexport ) 
void WINAPI ShowUInt64ByRef(unsigned __int64 * val)
{
    WCHAR wch[128];
    wsprintf(wch, L"ShowUInt64ByRef = %d", *val);
    MessageBoxW(NULL, wch, pLibName, 0);
}


//
// ShowSingleByVal - Display Single value passed by value.
//
extern "C" __declspec ( dllexport ) 
void WINAPI ShowSingleByVal(float val)
{
    WCHAR wch[128];
    swprintf(wch, L"ShowSingleByVal = %f", val);
    MessageBoxW(NULL, wch, pLibName, 0);
}

//
// ShowSingleByRef - Display Single value passed by reference.
//
extern "C" __declspec ( dllexport ) 
void WINAPI ShowSingleByRef(float * val)
{
    WCHAR wch[128];
    swprintf(wch, L"ShowSingleByRef = %f", *val);
    MessageBoxW(NULL, wch, pLibName, 0);
}

//
// ShowDoubleByVal - Display Double value passed by value.
//
extern "C" __declspec ( dllexport ) 
void WINAPI ShowDoubleByVal(double val)
{
    WCHAR wch[128];
    swprintf(wch, L"ShowDoubleByVal = %f", val);
    MessageBoxW(NULL, wch, pLibName, 0);
}

//
// ShowDoubleByRef - Display Double value passed by reference.
//
extern "C" __declspec ( dllexport ) 
void WINAPI ShowDoubleByRef(double * val)
{
    WCHAR wch[128];
    swprintf(wch, L"ShowDoubleByRef = %f", *val);
    MessageBoxW(NULL, wch, pLibName, 0);
}

//
// ShowCharByVal - Display Char value passed by value.
//
extern "C" __declspec ( dllexport ) 
void WINAPI ShowCharByVal(WCHAR val)
{
    WCHAR wch[128];
    swprintf(wch, L"ShowCharByVal = %c", val);
    MessageBoxW(NULL, wch, pLibName, 0);
}

//
// ShowCharByRef - Display Char value passed by reference.
//
extern "C" __declspec ( dllexport ) 
void WINAPI ShowCharByRef(WCHAR * val)
{
    WCHAR wch[128];
    swprintf(wch, L"ShowCharByRef = %c", *val);
    MessageBoxW(NULL, wch, pLibName, 0);
}

//
// ShowStringByVal - Display String value passed by value.
//
extern "C" __declspec ( dllexport ) 
void WINAPI ShowStringByVal(WCHAR * val)
{
    WCHAR wch[128];
    swprintf(wch, L"ShowStringByVal = %s", val);
    MessageBoxW(NULL, wch, pLibName, 0);
}

//
// ShowStringByRef - Display String value passed by reference.
//
extern "C" __declspec ( dllexport ) 
void WINAPI ShowStringByRef(WCHAR ** val)
{
    WCHAR wch[128];
    swprintf(wch, L"ShowStringByRef = %s", **val);
    MessageBoxW(NULL, wch, pLibName, 0);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -