我的任务是将自由格式文本与数据库中的数据进行匹配.我的意思是自由形式,它是一个文本框,有人可以输入任何东西.在大多数情况下,这些条目是有效的.我想从一个类似于输入内容的表中找到一个值列表.在你问之前,我无法控制所述文本框,也无法控制输入它的人.我在寻找技术,而不是特定的技术.
我尝试过的事情:
例如,我有这个列表:
用户输入可以是:
我想我想问的是我可以使用其他方法来计算这些结果.我的堆栈是.Net 4.0和MSSQL 2008 R2
我想在此之前提到我没有正式的C++培训,所以如果你有建议,请提供一个超级菜鸟可以实现的方式.
先感谢您.
我想要做的是从结构和委托中的C#pass调用C++函数.
我的代码工作,但如果我访问委托中的值,我收到此错误:
这是我的c#代码:
public delegate void CallBackMethodDelegate(MP4CreateClipProcessingData data);
[DllImport("libmp4v2.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
[return: MarshalAs(UnmanagedType.LPStr)]
public extern static string MP4CreateClip(ref MP4CreateClipProcessingData data, CallBackMethodDelegate del);
Run Code Online (Sandbox Code Playgroud)
这是我的C++代码:
struct MP4CreateClipProcessingData
{
bool err;
char* sourcePath;
char* targetPath;
char* error;
uint32_t startTime;
uint32_t duration;
};
extern "C" __declspec(dllexport) void MP4CreateClip(MP4CreateClipProcessingData data, void (_stdcall *func)(MP4CreateClipProcessingData))
{
func(data);
}
Run Code Online (Sandbox Code Playgroud)
这就是我在C#代码中调用函数的地方:
var data = new NativeMethods.MP4CreateClipProcessingData(file, Path.Combine(targetPath, Path.GetFileName(file).ToString()));
NativeMethods.CallBackMethodDelegate retDel = new NativeMethods.CallBackMethodDelegate(NativeMethods.returnCall);
NativeMethods.MP4CreateClip(ref data, retDel);
Run Code Online (Sandbox Code Playgroud)