C++アプリケーション内から開発環境(Keil uVision)でC関数名を表示させる必要があります。残念なことに、表示されている名前にはまだC++のmanglingが使用されています。したがって、Task1
を表示する代わりに、_Z5Task1Pv
と表示されます。 CではC++でのCの使用
++私は、Cファイルで、私は
extern "C" {
...
typedef void (*TaskFct)(void*);
...
static void Task1(void* param) { ... }
...
static TaskFct getTaskID(TaskFct tFunc) {
...
return Task1;
}
}
を持って
{
...
threadDef->pthread = (void (*)(void const*))getTaskID(tfunc);
...
threadId = osThreadCreate(threadDef, param);
}
を呼び出すには、C++アプリケーションで純粋なC名を取得することが可能ですか?
私はその後
cpp
アプリケーションをコンパイルするを持っているドライバ関数を呼び出したい各
cpp
クラスの最上部にこの '(\ *)'は何ですか? –Cファイルに 'extern" C "'がある場合は、何か非常に間違っています。 – hvd
@EdHeal私は、OPがMarkdownでテキストを太字にするのを避けるために '\ *'を使うことができると気づくでしょう。そして、エスケープが必要なくなったところでコードとして表示されるようにインデントしているだけです。 – hvd