一个MFC程序添加公共语言运行库时出错的问题 帮你顶下吧,别沉了。我看了下,对你说的那个不熟悉。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 MFC中没有用过clr,但是下面的MSDN资料可以参考检查一下:/clr 限制请注意下列对使用 /clr 的限制: 用 /clr 时,使用运行时错误检查无效。 当 /clr 用于编译不使用 C++ 的托管扩展的程序时,下列规则适用于内联程序集的使用: 如果内联程序集代码假定有关本机堆栈布局、当前函数外部的调用约定或其他有关计算机的低级别信息的知识,则如果将该知识应用于托管函数的堆栈帧,则此内联程序集代码可能失败。包含内联程序集代码的函数被生成为非托管函数,就像它们放在不是用 /clr 编译的单独模块中一样。 传递复制构造函数参数的函数中的内联程序集代码不受支持。 不能从用 /clr 编译的程序调用 vprintf 函数。 naked __declspec 修饰符在 /clr 下被忽略。 在 /clr 下不允许对类使用 dllexport 或 dllimport。 _set_se_translator 设置的转换器函数将只影响非托管代码中的 Catch。有关更多信息,请参见使用 C++ 托管扩展处理异常。 在 /clr 下不允许比较函数指针。 在 /clr 下不允许使用未完全保持原型的函数。 /clr 不支持下列编译器选项:/GL、/Zd、/ZI 或 /Z7、/ML 和 /MLd、/Gm、/YX 和 /RTC。 将 /Zi 与 /clr 一起使用时,会对性能造成一些影响;有关更多信息,请参见 /Zi。 如果将宽字符传递给 .NET Framework 输出例程,但没有同时指定 /Zc:wchar_t 或没有将字符转换为 __wchar_t,则将导致输出显示为 unsigned short int。例如: Console::WriteLine(L' ') // will output 32Console::WriteLine((__wchar_t)L' ') // will output a space在用 /clr 编译时将忽略 /GS,除非函数在 #pragma unmanaged 下面,或者函数必须编译到本机(在这种情况下,编译器将生成警告 C4793,而默认情况下该警告关闭)。 有关托管应用程序的函数签名要求,请参见 /ENTRY。 在创建托管映像时,使用 /ENTRY 指定的函数必须具有 (LPVOID var1, DWORD var2, LPVOID var3) 的签名。采用数量不固定的参数的函数 (varargs) 将作为本机函数生成。可变参数位置中的任何托管数据类型都将被封送为本机类型。请注意,System::String* 类型实际上是宽字符字符串,但它们被封送为单字节字符字符串。因此,如果 printf 说明符是 %S (wchar_t*),它将改为封送为 %s 字符串。 请教:在子窗口使用DC内存显示BMP位图显示不出来的问题 vc6的工程中增加了manifest文件,编译后在vista系统下看不到小盾牌 DLL在其他的程序里面用不了是什么原因呢? 向串口发字符串 两张相片色差问题。 软盘的扇区 字符串问题 问的问题答复后, 怎么给分呢? 找了好几天都没找到地方. 内存池和对象池的区别 如何做一个没有眶架的窗口,就是没caption and title bar 学了mfc一段时间后的疑问 WaitForSingleObject(g_hTerminateEvent, INFINITE);
请注意下列对使用 /clr 的限制: 用 /clr 时,使用运行时错误检查无效。
当 /clr 用于编译不使用 C++ 的托管扩展的程序时,下列规则适用于内联程序集的使用:
如果内联程序集代码假定有关本机堆栈布局、当前函数外部的调用约定或其他有关计算机的低级别信息的知识,则如果将该知识应用于托管函数的堆栈帧,则此内联程序集代码可能失败。包含内联程序集代码的函数被生成为非托管函数,就像它们放在不是用 /clr 编译的单独模块中一样。
传递复制构造函数参数的函数中的内联程序集代码不受支持。
不能从用 /clr 编译的程序调用 vprintf 函数。
naked __declspec 修饰符在 /clr 下被忽略。
在 /clr 下不允许对类使用 dllexport 或 dllimport。
_set_se_translator 设置的转换器函数将只影响非托管代码中的 Catch。有关更多信息,请参见使用 C++ 托管扩展处理异常。
在 /clr 下不允许比较函数指针。
在 /clr 下不允许使用未完全保持原型的函数。
/clr 不支持下列编译器选项:/GL、/Zd、/ZI 或 /Z7、/ML 和 /MLd、/Gm、/YX 和 /RTC。
将 /Zi 与 /clr 一起使用时,会对性能造成一些影响;有关更多信息,请参见 /Zi。
如果将宽字符传递给 .NET Framework 输出例程,但没有同时指定 /Zc:wchar_t 或没有将字符转换为 __wchar_t,则将导致输出显示为 unsigned short int。例如:
Console::WriteLine(L' ') // will output 32
Console::WriteLine((__wchar_t)L' ') // will output a space
在用 /clr 编译时将忽略 /GS,除非函数在 #pragma unmanaged 下面,或者函数必须编译到本机(在这种情况下,编译器将生成警告 C4793,而默认情况下该警告关闭)。
有关托管应用程序的函数签名要求,请参见 /ENTRY。 在创建托管映像时,使用 /ENTRY 指定的函数必须具有 (LPVOID var1, DWORD var2, LPVOID var3) 的签名。
采用数量不固定的参数的函数 (varargs) 将作为本机函数生成。可变参数位置中的任何托管数据类型都将被封送为本机类型。请注意,System::String* 类型实际上是宽字符字符串,但它们被封送为单字节字符字符串。因此,如果 printf 说明符是 %S (wchar_t*),它将改为封送为 %s 字符串。