CE系统,VS2005编写的DLL 用C#如何调用不了
CE系统,VS2005编写的DLL 用C#怎么调用不了?
VS2005新建项目 - VC++ - 智能设备 - WIN32智能设备项目 - DLL
DLL code使用默认的:
// CETESTDLL.cpp : 定义 DLL 应用程序的入口点。
//
#include "stdafx.h"
#include "CETESTDLL.h"
#include <windows.h>
#include <commctrl.h>
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
// 这是导出变量的一个示例
CETESTDLL_API int nCETESTDLL=0;
// 这是导出函数的一个示例。
CETESTDLL_API int fnCETESTDLL(void)
{
return 42;
}
// 这是已导出类的构造函数。
// 有关类定义的信息,请参阅 CETESTDLL.h
CCETESTDLL::CCETESTDLL()
{
return;
}
-------------------------------------------
C# code:
class CETESTDLL
{
[DllImport("CETESTDLL.dll", CharSet = CharSet.Auto)]
public static extern int fnCETESTDLL();
}
private void Form1_Load(object sender, EventArgs e)
{
MessageBox.Show(CETESTDLL.fnCETESTDLL().ToString());
}
运行总提示无法找到PInvoke DLL"CETESTDLL.dll"中的入口点"fnCETESTDLL"
谁遇到过这问题??
------解决思路----------------------
C++ 与 C# 相互调用,好像是要用到类似的声明:extern "C" __declspec(dllexport)
建议 LZ 在网上查找一下,这方面的资料很多的
VS2005新建项目 - VC++ - 智能设备 - WIN32智能设备项目 - DLL
DLL code使用默认的:
// CETESTDLL.cpp : 定义 DLL 应用程序的入口点。
//
#include "stdafx.h"
#include "CETESTDLL.h"
#include <windows.h>
#include <commctrl.h>
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
// 这是导出变量的一个示例
CETESTDLL_API int nCETESTDLL=0;
// 这是导出函数的一个示例。
CETESTDLL_API int fnCETESTDLL(void)
{
return 42;
}
// 这是已导出类的构造函数。
// 有关类定义的信息,请参阅 CETESTDLL.h
CCETESTDLL::CCETESTDLL()
{
return;
}
-------------------------------------------
C# code:
class CETESTDLL
{
[DllImport("CETESTDLL.dll", CharSet = CharSet.Auto)]
public static extern int fnCETESTDLL();
}
private void Form1_Load(object sender, EventArgs e)
{
MessageBox.Show(CETESTDLL.fnCETESTDLL().ToString());
}
运行总提示无法找到PInvoke DLL"CETESTDLL.dll"中的入口点"fnCETESTDLL"
谁遇到过这问题??
------解决思路----------------------
C++ 与 C# 相互调用,好像是要用到类似的声明:extern "C" __declspec(dllexport)
建议 LZ 在网上查找一下,这方面的资料很多的