突然,突然之间,我得到了LME288链接器错误.
[ilink32 Warning] Warning: D:/Projects/TrainFever Game Manager/TFGM/Win32/Debug/TFGameManager.ilc: 0x00010000 / 0x08000000
[ilink32 Warning] Warning: D:/Projects/TrainFever Game Manager/TFGM/Win32/Debug/TFGameManager.ild: 0x00010000 / 0x08000000
[ilink32 Warning] Warning: D:/Projects/TrainFever Game Manager/TFGM/Win32/Debug/TFGameManager.ilf: 0x00010000 / 0x0a000000
[ilink32 Warning] Warning: D:/Projects/TrainFever Game Manager/TFGM/Win32/Debug/TFGameManager.ils: 0x0003b000 / 0x08000000
[ilink32 Warning] Warning: unknown heap name : 0x08000000 / 0x08000000
[ilink32 Warning] Warning: Error detected (LME288)
[ilink32 Error] Error: Unable to perform link
Run Code Online (Sandbox Code Playgroud)
我没有安装AV,该项目已经运行了一年多.我试过了:
我还能做些什么来解决这个问题?
编辑
我试图重建其他几个运行良好多年的项目,现在我的所有项目都出现了LME288错误.
我正在使用RAD Studio XE7(C++ Builder).对于我的一个项目,主窗体包含几个组件,如面板,按钮,标签,编辑框,......,其中一些组件已激活"自动调整大小"属性.到目前为止,我总是在这个界面上显示英文文本,他的开场表演是可以接受的.
我最近用日语翻译了这个界面.我注意到开放时间明显变慢了.
使用剖析器(Shiny),我测量了两者之间的差异.我注意到VCL可能会处理几个属性,比如位置和大小,直到日语界面打开时要慢10倍.性能泄漏明显,而pControl-> Width或pControl-> Margins-> Top等属性正在发生变化.我没有修改两个版本之间的任何代码行,只修改了DFM文件中的文本,没有别的.
我无法相信VCL的性能可能会像这样降低.VCL中有关日本文本表演的已知问题吗?使用VCL控件阻止此类场景的良好做法是什么?
我们有很多用C++编写的基于VCL的应用程序.所有VCL方法(下__published类改性剂需要__fastcall调用约定.但是,不管是什么原因,开发商已经加入__fastcall到其他非VCL功能,这些功能private,protected或public.
基于这篇文章,这对我来说毫无意义,因为它不必要地使代码变得复杂,甚至可能是性能损失(尽管可能是可以忽略的).尽管如此,在建议我们在某些地方删除它后,我被告知我们总是这样做,所以要保持一致,这只是一个风格问题.我认为如果没有必要,它实际上会让人感到困惑,所以这是不好的做法.
我的问题是,何时使用__fastcall调用约定是否合适?
我正试图用我的hpp单元解决一个小问题.我在互联网上发现了一些例子,展示了如何使用Android JNI桥在屏幕上烘烤信息,但它只是在pascal(delphi)中,所以我决定使用相同的pas文件但是使用hpp文件进行转换.直到现在我明白了:
#ifndef Android_Jni_ToastHPP
#define Android_Jni_ToastHPP
#pragma delphiheader begin
#pragma option push
#pragma option -w- // All warnings off
#pragma option -Vx // Zero-length empty class member
#pragma pack(push,8)
#include <FMX.Helpers.Android.hpp> // Pascal unit
#include <Androidapi.JNIBridge.hpp> // Pascal unit
#include <Androidapi.JNI.JavaTypes.hpp> // Pascal unit
#include <Androidapi.JNI.GraphicsContentViewText.hpp> // Pascal unit
#include <Androidapi.JNI.Util.hpp> // Pascal unit
#include <Androidapi.JNI.App.hpp> // Pascal unit
#include <FMX.Surfaces.hpp> // Pascal unit
//-- user supplied -----------------------------------------------------------
namespace Android
{
namespace Jni
{
namespace Toast
{
//-- type declarations …Run Code Online (Sandbox Code Playgroud) 我需要将文件的上次修改时间与存储在数据库中的日期时间进行比较.我最初看了这个问题才开始.
我目前正在获取FILETIME文件的最后一次写入,将其转换为SYSTEMTIME.然后我用它SYSTEMTIME来创建一个TDateTime可以用来比较的对象.但是,FileModifiedDT尽管先前已修改过文件,但变量始终是当前时间.
FILETIME lastWriteTime;
String * FileNamePtr = new String( FileName );
GetFileTime( FileNamePtr, NULL, NULL, &lastWriteTime );
SYSTEMTIME systemTime;
FileTimeToSystemTime( &lastWriteTime, &systemTime );
TDateTime * FileModifiedDT = new TDateTime( systemTime.wYear, systemTime.wMonth,
systemTime.wDay, systemTime.wHour,
systemTime.wMinute, systemTime.wSecond,
systemTime.wMilliseconds );
Run Code Online (Sandbox Code Playgroud)
我GetFileTime在某种程度上错过了吗?我还有更好的方法吗?
c++ ×3
c++builder ×3
delphi ×2
datetime ×1
delphi-xe7 ×1
performance ×1
vcl ×1
winapi ×1
windows-8.1 ×1