读书人

问一个奇怪的有关问题为什么小弟我用

发布时间: 2013-09-06 10:17:17 作者: rapoo

问一个奇怪的问题,为什么我用C++生成的DLL文件,在win8系统下用C#调用正常,换XP就出问题呢?
C#的代码


class C_strOpDll
{
[DllImport("CXstr.dll")]
public static extern void myTest();
}

public Form1()
{
InitializeComponent();
MessageBox.Show("00");
C_strOpDll.myTest();
MessageBox.Show("11");//这里换XP系统运行不到这里,win8能到这里

}


c++代码

extern "C" __declspec(dllexport) void myTest()
{
MessageBox(NULL,TEXT("OK"),TEXT("test ij"),MB_OK);//XP没有到这步
}
//另外我在DLL入口函数内也加了MSGBOX
BOOL APIENTRY DllMain( HMODULE 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:
MessageBox(NULL,TEXT("123"),TEXT("123"),MB_OK);//XP也没到这里
break;
}
return TRUE;
}


在XP下运行除了弹出个对话框“00”(我自己设的)外,接着就弹出“遇到问题需要关闭”的提示,请问这是为什么? win8 c# xp
[解决办法]
是不是你的dll编译成64bit的了。

读书人网 >C#

热点推荐